RegEx验证字符串“900 - 09 999”

时间:2012-02-28 12:47:16

标签: javascript regex

验证以下字符串“900 - 09 999”的正确Javascript RegExp是什么? 字符串应该只允许从0到9的数字,连字符和空格。

提前致谢

2 个答案:

答案 0 :(得分:1)

在解释您希望正则表达式验证的内容时始终保持准确。空格和连字符是否可选?这个东西很重要。无论如何,这验证了严格的格式:

"\d{3} \- \d{2} \d{3}"

这个不太严格:

"\d{3} ?\-? ?\d{2} ?\d{3}"

答案 1 :(得分:0)

如果您使用此:

inputField.value = inputField.value.replace(/\s*(\d\d\d)\s*-?\s*(\d\d)\s*(\d\d\d)\s*/, "$1 - $2 $3")

...如果值不完全匹配,它应该松散地验证并重新格式化值。

细分,表达式执行以下操作:

\s*          # match any amount of whitespace
(\d\d\d)     # capture three digits
\s*          # match any amount of whitespace
-?           # match an optional hyphen
\s*          # match any amount of whitespace
(\d\d)       # capture two digits
\s*          # match any amount of whitespace
(\d\d\d)     # capture three digits
\s*          # match any amount of whitespace
  • match表示查找与表达式
  • 匹配的一组字符
  • capture表示查找匹配项,但存储该匹配项以供日后使用
  • whitespace可以是空格,制表符或回车字符
  • any amount可以表示零或更多