我正在尝试创建一个正则表达式,只允许以下字符0-9、加号、减号和括号()。对于每个所提到的字符,没有长度限制。到目前为止,我有以下这个,但似乎不起作用。
/^[0-9 -+]+$/
我正在尝试创建一个正则表达式,只允许以下字符0-9、加号、减号和括号()。对于每个所提到的字符,没有长度限制。到目前为止,我有以下这个,但似乎不起作用。
/^[0-9 -+]+$/
连字符 -
必须在 charlist 的结尾,否则它的意思是区间。
/^[0-9 ()+-]+$/
0-9可以简写为\d
/^[\d ()+-]+$/
这对您应该有效:
^[\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
<div id="results"></div>
匹配数字、+、-、(、) 使用:
[+()\d-]+
if (/^[+()\d-]+$/.test(text)) {
} else {
}
var re = /^[\w\(\)\-\!\+\*\&\%\$#\@\[\]\{\}\<\>\s]+$/m;
var str = ['09+()1213+-[#test@gmail{}<>','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
<div id="results"></div>
[\d\(\)\+\-\(\)]
应该可以了。
编辑:但是因为有些人认为转义太多了,所以在这里给你:
[\d+()-]