我正在codeacademy.com上进行此练习,但偶然发现此练习没有任何意义。当我尝试将井号包含在first []中时,它发出了一个错误。我不知道为什么。

//change the regexp to have only good message

var emailregexp = /[a-z0-9._%+-#]+@[a-z0-9.-]+\.[a-z]{2,4}/;
console.log(emailregexp.test("[email protected]")?"good":"bad");
console.log(emailregexp.test("[email protected]")?"good":"bad");
console.log(emailregexp.test("###mic###@microsoft.com")?"good":"bad");


 输出

error

最佳答案

您需要在-之前转义#,否则它认为您在指定范围,例如0-9

[a-z0-9._%+\-#]


因此,它看起来像:

var emailregexp = /[a-z0-9._%+\-#]+@[a-z0-9.-]+\.[a-z]{2,4}/;

关于javascript - 正则表达式Javascript中[]中的#标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32792691/

10-10 09:46