验证以下字符串“900 - 09 999”的正确Javascript RegExp是什么? 字符串应该只允许从0到9的数字,连字符和空格。
提前致谢
答案 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
可以表示零或更多