有人可以帮我创建这个正则表达式。我需要它来检查字符串是完全空白(空)还是只包含正整数。如果还有其他任何失败。这是我到目前为止所做的。
/^\s*|[0-9][0-9]*/
答案 0 :(得分:44)
您正在寻找:
/^(\s*|\d+)$/
如果您想要一个没有前导零的正数,请使用[1-9][0-9]*
如果您不关心周围的空格,您还可以尝试:
/^\s*\d*\s*$/
请注意,您不希望允许部分匹配,例如 123
abc
,因此您需要开始和结束锚点:^...$
。
你的正则表达式有一个常见的错误:^\s*|\d+$
,例如,不强制执行整个匹配,就像(^\s*)|(\d+$)
,读取,开头的空格或结尾的数字一样。
答案 1 :(得分:5)
答案 2 :(得分:3)
Kobi有一个很好的答案,但从技术上讲你不必捕捉它(除非你要做输出的事情)
/^[\s\d]+$/
或者如果你不在乎字符串是否完全为空(即“”)
/^[\s\d]*$/
澄清我理解原始问题意味着字符串中的空格应该被忽略。
答案 3 :(得分:1)
你可以试试 -
/^\d*$/
与空格匹配 -
/^[\s\d\s]*$/
答案 4 :(得分:1)
^\d+([\.\,][0]{2})?$
我发现这对我有用。允许任何整数,但只有小数.00
通
失败
答案 5 :(得分:0)