1

我几乎没有编写正则表达式的经验。我将如何检查字符串是否只包含零、空格、连字符和冒号?谢谢!

4

3 回答 3

3

您应该使用简单的正则表达式(无前向查找)获得良好的性能:

^[0 :-]++$

分解它:

  • ^识别输入的开头
  • []表示括号内的任何字符都匹配。
  • +表示前面的(括号)必须匹配 1 次或多次。++使其占有,提高性能。
  • $识别输入的结尾
于 2012-10-11T19:22:18.743 回答
3
/^[0\s:-]+$/ 
  • ^= 字符串开头
  • [0\s:-]+= 一个或多个零、空格、连字符、冒号。+表示一个或多个,是任何空白字符,\s可能包括换行符和制表符。
  • $= 字符串结尾

由于模式锚定在 和 之间^$因此除了[]字符类中的字符之外,不会匹配其他字符。

如果您只允许文字空间而不是任何空白字符,请使用:

/^[0 :-]+$/ 
于 2012-10-11T19:22:21.773 回答
1

您可以使用范围。

^[0 \-:]{1,}$
于 2012-10-11T19:21:10.413 回答