我正在尝试创建一个只允许以下0-9加上符号,减号和括号()的正则表达式。对每个提到的长度没有限制。到目前为止我有这个,但似乎没有用。
/^[0-9 -+]+$/
答案 0 :(得分:11)
连字符-
必须位于charlist的末尾,否则表示间隔。
/^[0-9 ()+-]+$/
0-9可以很快写为\d
/^[\d ()+-]+$/
答案 1 :(得分:2)
这应该适合你:
^[\d\(\)\-+]+$
^
- >字符串的开头
\d
- >与[0-9]
+
- >一次或多次重复
$
- >字符串结尾
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;
答案 2 :(得分:0)
[\d\(\)\+\-\(\)]
应该这样做。
编辑:但是由于有些人认为逃避太多了,所以你去吧:
[\d+()-]
答案 3 :(得分:0)
要匹配数字,+, - ,(和)使用:
[+()\d-]+
技巧是角色类中角色的位置。
if (/^[+()\d-]+$/.test(text)) {
} else {
}