正则表达式允许数字,加号,减号和括号

时间:2015-06-03 11:35:51

标签: javascript regex

我正在尝试创建一个只允许以下0-9加上符号,减号和括号()的正则表达式。对每个提到的长度没有限制。到目前为止我有这个,但似乎没有用。

/^[0-9 -+]+$/

4 个答案:

答案 0 :(得分:11)

连字符-必须位于charlist的末尾,否则表示间隔。

/^[0-9 ()+-]+$/

0-9可以很快写为\d

/^[\d ()+-]+$/

答案 1 :(得分:2)

这应该适合你:

^[\d\(\)\-+]+$

^ - >字符串的开头

\d - >与[0-9]

相同

+ - >一次或多次重复

$ - >字符串结尾

DEMO



var re = /^[\d\(\)\-+]+$/m; 
var str = ['09+()1213+-','fa(-ds'];
var m;
var result = "";
 
for(var i = 0; i < str.length; i++) {
    if ((m = re.exec(str[i])) !== null) {
        if (m.index === re.lastIndex) {
            re.lastIndex++;
        }
        // View your result using the m-variable.
        // eg m[0] etc.
 
    }
  result += "\""+str[i]+  "\"" + " is matched:" + (m != null) + "</br>";
}

document.getElementById("results").innerHTML = result
&#13;
<div id="results"></div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

[\d\(\)\+\-\(\)]

应该这样做。

编辑:但是由于有些人认为逃避太多了,所以你去吧:

[\d+()-]

答案 3 :(得分:0)

要匹配数字,+, - ,(和)使用:

[+()\d-]+

技巧是角色类中角色的位置。

if (/^[+()\d-]+$/.test(text)) {

} else {

}