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

use*_*098 6 javascript regex

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

/^[0-9 -+]+$/
Run Code Online (Sandbox Code Playgroud)

pan*_*her 12

连字符-必须在charlist的末尾,否则它意味着间隔.

/^[0-9 ()+-]+$/
Run Code Online (Sandbox Code Playgroud)

0-9可以写成 \d

/^[\d ()+-]+$/
Run Code Online (Sandbox Code Playgroud)


ema*_*lli 6

这应该为您工作:

^[\d\(\)\-+]+$
Run Code Online (Sandbox Code Playgroud)

^ ->字符串开始

\d ->与[0-9]相同

+ ->一个或多个重复

$ ->字符串结尾

演示

^[\d\(\)\-+]+$
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)


Mor*_*der 0

[\d\(\)\+\-\(\)]
Run Code Online (Sandbox Code Playgroud)

应该可以做到这一点。

编辑:但是由于有些人认为转义太多了,所以开始吧:

[\d+()-]
Run Code Online (Sandbox Code Playgroud)

  • 为何要逃得那么重?锚点和量词在哪里? (3认同)