【发布时间】:2010-07-14 17:44:52
【问题描述】:
谁能帮我创建这个正则表达式。我需要它来检查字符串是完全空格(空)还是只包含正整数。如果还有其他事情,它会失败。这是我目前所拥有的。
/^\s*|[0-9][0-9]*/
【问题讨论】:
-
[0-9][0-9]* 与 [0-9]+ 相同
标签: regex
谁能帮我创建这个正则表达式。我需要它来检查字符串是完全空格(空)还是只包含正整数。如果还有其他事情,它会失败。这是我目前所拥有的。
/^\s*|[0-9][0-9]*/
【问题讨论】:
标签: regex
您正在寻找:
/^(\s*|\d+)$/
如果您想要一个不带前导零的正数,请使用[1-9][0-9]*
如果你不关心数字周围的空格,你也可以试试:
/^\s*\d*\s*$/
请注意,您不希望允许部分匹配,例如 123abc,因此您需要开始和结束锚点:^...$。
您的正则表达式有一个常见错误:例如,^\s*|\d+$ 不会强制匹配,就像 (^\s*)|(\d+$)、阅读、开头的空格或结尾的数字一样。
【讨论】:
1 2 3
^\s*([1-9]\d*\s*)+$ 只允许使用空格和正数,但我只是傻了。
【讨论】:
Kobi 有一个很好的答案,但从技术上讲,您不必捕获它(除非您要对输出做某事)
/^[\s\d]+$/
或者如果您不在乎字符串是否完全为空(即“”)
/^[\s\d]*$/
为了澄清,我理解原来的问题是应该忽略字符串中的空格。
【讨论】:
/^[\s\d]*$/ 的问题是它与 123 123 之类的东西匹配
^ 和 $)远离|
你可以试试-
/^\d*$/
与空格匹配-
/^[\s\d\s]*$/
【讨论】:
^\d+([\.\,][0]{2})?$
我发现这对我有用。允许任何整数,但只允许小数点 0.00
通过
失败
【讨论】:
【讨论】: