JavaScript中的RegExp返回null

时间:2016-05-02 18:29:00

标签: javascript regex

我想查一下电话号码。正确的格式是38xxxxxxxxxx。

我的支票:

var phoneNumber=document.getElementById('phone').value;
var re=new RegExp("^[38]\d{10}$");
var res=phoneNumber.match(re);

我总是得到null。怎么了?

4 个答案:

答案 0 :(得分:4)

当使用带引号的RegExp构造函数时,应用正常的字符串转义规则。因此,您需要将特殊字符<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve"> <g class="next"> <g> <polygon fill="#FFD92D" class="inner" points="20.587,5.055 78.706,48 20.587,90.945"/> <path id="objsvg" fill="#FF9900" class="outer" d="M21.623,7.11L76.961,48L21.623,88.89V7.11 M19.55,3v90l60.9-45L19.55,3L19.55,3z"/> </g> </g> </svg> 转义为\d。此外,您需要将\\d改为[38],因为38匹配[38]3

&#13;
&#13;
8
&#13;
&#13;
&#13;

答案 1 :(得分:0)

var res = phoneNumber.match(/ 38 [0-9] {8,10} / m);

允许的电话号码长度:10-12

答案 2 :(得分:0)

你的正则表达式是错误的,如果你想匹配self.btnSubmit.addTarget(self, action: #selector(myClass.pressed(_:)), forControlEvents: .TouchUpInside) ,你应该移除38xxxxxxxxxx括号,因为这意味着[]3,之后它会尝试匹配10位数,所以只需删除8

即可
[]

答案 3 :(得分:0)

使用构造函数时,必须使用正常的字符串转义规则。

new RegExp("^38\\d{10}$");