在一段脚本中需要验证手机号码,
var mob=document.getElementById('mobile').value,
_this=$(this);
var reg=new RegExp("^1[3-9]\\d{9}$");
if (!reg.test(mob)) {
$('.alarm').css('visibility', 'visible');
return false;
}else {
$('.alarm').css('visibility', 'hidden');
}
问题发生了,不管mob的值是否为手机号码,正规则就是一直通不过,狠奇怪,找了几个小时的原因。后面同事说是有可能php框架中的{
跟表达式里的{冲突了,一语惊醒了。在群里面求助,好心人让我改成var reg=new RegExp("^1[3-9][\\d]\u007b9\u007d$");
噢了,一切问题都解决了。问题确实是正规则里的{符号跟php框架中的{冲突了。
一些其他的特殊符号还有如下:
点的转义:. ==> \\u002E
美元符号的转义:$ ==> \\u0024
乘方符号的转义:^ ==> \\u005E
左大括号的转义:{ ==> \\u007B
左方括号的转义:[ ==> \\u005B
左圆括号的转义:( ==> \\u0028
竖线的转义:| ==> \\u007C
右圆括号的转义:) ==> \\u0029
星号的转义:* ==> \\u002A
加号的转义:+ ==> \\u002B
问号的转义:? ==> \\u003F
反斜杠的转义:\ ==> \\u005C