Javascript 尝试编写只匹配数字、空格、括号和#x2B的正则表达式;及-
我想写一个正则表达式,检查数字,空格,括号,+和- 这就是我到目前为止所做的:Javascript 尝试编写只匹配数字、空格、括号和#x2B的正则表达式;及-,javascript,regex,validation,Javascript,Regex,Validation,我想写一个正则表达式,检查数字,空格,括号,+和- 这就是我到目前为止所做的: /\d|\s|\-|\)|\(|\+/g 但是我在正则表达式中得到了这个错误:unmatched) 任何建议都会有帮助。 谢谢您需要转义括号,因为括号在正则表达式中用作特殊语法: 而不是“(”: \( 而不是“)”: \) 此外,由于同样的原因,这对“+”不起作用: \+ 编辑:您可能希望使用字符类而不是带有“|”的“或”符号,因为它更具可读性: [\s\d()+-]您需要对括号进行转义,因为括号在正则表达式中用作
/\d|\s|\-|\)|\(|\+/g
但是我在正则表达式中得到了这个错误:unmatched)
任何建议都会有帮助。
谢谢您需要转义括号,因为括号在正则表达式中用作特殊语法: 而不是“(”:
\(
而不是“)”:
\)
此外,由于同样的原因,这对“+”不起作用:
\+
编辑:您可能希望使用字符类而不是带有“|”的“或”符号,因为它更具可读性:
[\s\d()+-]
您需要对括号进行转义,因为括号在正则表达式中用作特殊语法:
而不是“(”:
\(
而不是“)”:
\)
此外,由于同样的原因,这对“+”不起作用:
\+
编辑:您可能希望使用字符类而不是带有“|”的“或”符号,因为它更具可读性:
[\s\d()+-]
使用字符类:
/[\d\s()+-]/g
如果它是一个数字\d
、空白\s
、文字(
、文字)
、文字+
或文字-
,那么它将匹配单个字符。将-
放在字符类的最后一位是使其成为文字-
的一种简单方法;否则,它可能会成为范围定义元字符(例如[a-Z]
)
一般来说,使用字符类(例如[aeiou]
)比一次匹配一个字符(例如a | e | i | o | u
)更具可读性。它更简洁、可读性更强,并且可以自然地将字符分组在一起,因此您可以执行例如[aeiou]+
来匹配元音序列
工具书类
警告 初学者有时会错误地将字符类与
[a | e | i | o | u]
相匹配,或者更糟的是,[this | that]
。这是错误的。字符类本身与输入中的一个字符完全匹配
相关问题
/[\d\s()+-]/g
如果它是一个数字\d
、空白\s
、文字(
、文字)
、文字+
或文字-
,那么它将匹配单个字符。将-
放在字符类的最后一位是使其成为文字-
的一种简单方法;否则,它可能会成为范围定义元字符(例如[a-Z]
)
一般来说,使用字符类(例如[aeiou]
)比一次匹配一个字符(例如a | e | i | o | u
)更具可读性。它更简洁、可读性更强,并且可以自然地将字符分组在一起,因此您可以执行例如[aeiou]+
来匹配元音序列
工具书类
警告 初学者有时会错误地将字符类与
[a | e | i | o | u]
相匹配,或者更糟的是,[this | that]
。这是错误的。字符类本身与输入中的一个字符完全匹配
相关问题
[\d\s-+()]
试试这个:
[\d\s-+()]
这是一个很棒的游戏!这是你的书。这是一本很棒的书!这是你的护照
此表达式仅匹配数字、括号、空格和减号。
例如:
- 888-111-2222
- 8881112222
- 888112222
- (888)111-2222
- 888-111-2222
- 8881112222
- 888112222
- (888)111-2222
/\d\s\124\-\ 124\\)\ 124\(\ 124\+/g
?因为我觉得这很好。我也很困惑…/\d\s\124\-\ 124\\)\ 124\(\ 124\+/g
在原始源代码中,但Christian的修订版显示它是从/\d\124s>更改而来的。)|(|+/g
至\d |\s | \-| \)|\(|\+/g
,当时他所做的只是重新格式化空白。也许这是SO修订代码中的一个错误?@Christian Hayter-你删掉了他的问题。我们现在该怎么回答?请撤销。@Daniel:事实上,如果你看第一次修订,已经是这样了。Christian没有添加\转义符。我现在也不知道问题是什么是关于。@Polygene润滑油:看起来好像在什么地方出了问题;我又回到了原来的状态。@Borealid,@Daniel:那么,当模式是/\d\s\124\-\ 124\\)\ 124\(\ 124\+/g
)时,有人能重现OP的问题吗?因为这对我来说很好。我也很困惑…/\d\s\124\-\ 124\\)|\(|\+/g
在原始源代码中,但Christian的修订版显示它已从/\d |\s |-|)|(|+/g
更改为\d |\s |-|\)|\(| \++/g
,当时他所做的只是重新格式化空白。也许这是SO修订代码中的一个错误?虽然-
直接放在速记字符类\s
之后,因此不需要转义,但我还是选择将它(未转义)放在字符类的开头或结尾,以免引起混淆:[-\d\s+()]
或[\d\s+()-]
。虽然-
直接放在简写字符类\s
之后,因此不需要转义,但我会选择将其(未转义)放在字符类的开头或结尾,以免引起混淆:[-\d\s+()]
或[\d\s+()-]
。