0

我有一个现有的正则表达式:

/^(\d*)(\.(\d*))?$|^$/

我如何添加/修改对空字段的检查 - (\s*) 到这个?- 尝试学习正则表达式,进行了搜索但没有找到合适的资源。

4

3 回答 3

0

首先,你的|^$部分是多余的。但是如果你试图禁止一个空字段,你可以试试这个:

/^\d*\.?\d+$/

如果你想忽略开头和结尾的空格,试试这个:

/^\s*\d*\.?\d+\s*$/

你的措辞有点不清楚,所以如果这不是你想要做的,请告诉我。

于 2013-04-11T20:07:58.463 回答
0

所以你的正则表达式说:

从头开始匹配 - ^ - 零个或多个数字 - \d* -,后面可能跟一个点和零个或多个数字 - (.(\d*))? – 后面没有任何内容 – $,字符串结尾。或者——| – 匹配字符串的开头,然后是字符串的结尾 – ^$ –。

你必须修改它的最后一部分。代替^$,您可以 match ^\s*$,读作“匹配字符串的开头,后跟零个或多个空格,以及字符串的结尾”。所以它匹配之前的条件(零空格意味着从头到尾)和新的条件——带有一些空格。

希望它有助于更​​好地理解正则表达式。不幸的是,我不知道 RegExp 有什么好的资源,我只使用MDN

于 2013-04-11T20:12:43.987 回答
0

您是否尝试过使用www.debuggex.com来帮助您处理正则表达式?我认为这是您正在寻找的正则表达式:

^(?:(\d*)(?:\.(\d*))?|\s*)$

它将匹配一个浮点数或一些空格。请注意,浮点数的格式可能很奇怪。例如,0000.10会匹配。

于 2013-04-11T20:43:11.787 回答