在php框架中写正规则表达式时的磕绊

在一段脚本中需要验证手机号码,

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 

posted @ 2014-08-06 10:23  jiaojiao085  阅读(125)  评论(0编辑  收藏  举报