我不知道,因为我的正则表达式是不正确的:范围无序的字符类在javascript
var domain = "google\.com\.br";
var reEmail = new RegExp("^([A-Za-z0-9_\-\.])+\@" + domain + "$");
我需要这个来验证电子邮件,例如:reEmail.test("[email protected]");
我得到这个错误:
范围不按顺序在字符类
我不知道,因为我的正则表达式是不正确的:范围无序的字符类在javascript
var domain = "google\.com\.br";
var reEmail = new RegExp("^([A-Za-z0-9_\-\.])+\@" + domain + "$");
我需要这个来验证电子邮件,例如:reEmail.test("[email protected]");
我得到这个错误:
范围不按顺序在字符类
因为你使用字符串创建正则表达式的_\-\.
变为_-.
,那是无效范围。 (距离_
到.
一个范围,这是不正确的)
您需要双逃生它:
new RegExp("^([A-Za-z0-9_\\-\\.])[email protected]" + domain + "$");
这样的\\
成为String中\
,然后用以逃避RegExp中的-
。
编辑:
例如:
如果通过字符串创建的RegExp它始终是有用的,这样你看,如果你做的一切权利记录结果你对正则表达式的一部分
console.log("^([A-Za-z0-9_\-\.])+\@");
结果:
^([A-Za-z0-9_-.])[email protected]
使用正则表达式字面:'/ ^([A-ZA-Z0-9 _ \ - ])+ @ /'! – Bergi