Javascript 如何编写只允许数字和“";",&引用-&引用;

Javascript 如何编写只允许数字和“";",&引用-&引用;,javascript,regex,Javascript,Regex,下面是我的正则表达式,但它似乎不起作用 /[0-9\-\(\)]/.test(str) 当我测试的时候 /[0-9\-\(\)]/.test('(12321)213213d') 它将返回true您需要用*或+重复它。您还需要使用^和$锚定它以包含整个字符串 console.log(/^[0-9\-\(\)]+$/.test(‘(12321)21323d’); console.log(/^[0-9\-\(\)]+$/.test(‘(12321)213213’)您实际测试的是测试字符串中是否

下面是我的正则表达式,但它似乎不起作用

/[0-9\-\(\)]/.test(str)
当我测试的时候

 /[0-9\-\(\)]/.test('(12321)213213d')

它将返回true

您需要用
*
+
重复它。您还需要使用
^
$
锚定它以包含整个字符串

console.log(/^[0-9\-\(\)]+$/.test(‘(12321)21323d’);

console.log(/^[0-9\-\(\)]+$/.test(‘(12321)213213’)您实际测试的是测试字符串中是否有这些字符。您想检查它是否只包含这些字符。要做到这一点,您需要说从开始到结束,它只包含那些字符

e、 g


当前正则表达式只检查字符串中的任何一个字符是否与字符类匹配。添加锚和量词:
/^[0-9\-\(\)]+$/

  • ^
    -“输入开始”锚定
  • $
    -“输入结束”锚定
  • +
    -需要前面的一项或多项内容

请注意,
“()”
将匹配该正则表达式。:-)

我相信添加输入开头/结尾字符可以解决这个问题。像

^[0-9\-(\)]$/.exec('(12321)213213d')

^开始,$end,\d表示数字和()-

我想你正在寻找电话号码匹配器,如果你的答案是肯定的,那么这是不适合它的正则表达式


有关电话号码匹配器,请访问此

您是否正在尝试匹配电话号码?(鉴于该字符集,似乎是这样)您可能想看看
^[0-9\-(\)]$/.exec('(12321)213213d')
/^[\d\(\)\-]+$/.test('(12321)213213d')