正则表达式为" +"不在Mozilla工作

时间:2017-04-28 06:14:07

标签: javascript regex validation reactjs

我想通过使用+符号继续使用数字来验证reactjs表单中的数字。

例如,当我输入" + 9829"并输入submit然后验证应该有效。

这是我的正则表达式验证码:

if(!(/(\+)?\d+/g.test(checkValidPhone)))   

(\+)?\d+/g此RegExp在Chrome和IE中正常运行,但在Mozilla中运行不正常,因为在Mozilla中+符号未经过验证。

请参阅this Plunkr demo

任何有任何建议的人?

1 个答案:

答案 0 :(得分:0)

在Firefox中尝试并测试以下代码,因为它对我来说运行正常。

请注意,要将字符串验证为数字后跟+,您必须使用锚^$,否则.test()将适用于其他无效案例例如+900n



function myFunction() {
    var str = document.getElementById('num').value;

    //look for "+" followed by digits
    var patt = /^(\+)?\d+$/;
    var result = patt.test(str);

    document.getElementById("demo").innerHTML = result;
}

<!DOCTYPE html>
<html>
<body>

<p>Do a number followed by + :</p>
<input type="text" id="num">

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

</body>
</html>
&#13;
&#13;
&#13;