我有一个现有的正则表达式:
/^(\d*)(\.(\d*))?$|^$/
我如何添加/修改对空字段的检查 - (\s*) 到这个?- 尝试学习正则表达式,进行了搜索但没有找到合适的资源。
我有一个现有的正则表达式:
/^(\d*)(\.(\d*))?$|^$/
我如何添加/修改对空字段的检查 - (\s*) 到这个?- 尝试学习正则表达式,进行了搜索但没有找到合适的资源。
首先,你的|^$
部分是多余的。但是如果你试图禁止一个空字段,你可以试试这个:
/^\d*\.?\d+$/
如果你想忽略开头和结尾的空格,试试这个:
/^\s*\d*\.?\d+\s*$/
你的措辞有点不清楚,所以如果这不是你想要做的,请告诉我。
所以你的正则表达式说:
从头开始匹配 - ^ - 零个或多个数字 - \d* -,后面可能跟一个点和零个或多个数字 - (.(\d*))? – 后面没有任何内容 – $,字符串结尾。或者——| – 匹配字符串的开头,然后是字符串的结尾 – ^$ –。
你必须修改它的最后一部分。代替^$
,您可以 match ^\s*$
,读作“匹配字符串的开头,后跟零个或多个空格,以及字符串的结尾”。所以它匹配之前的条件(零空格意味着从头到尾)和新的条件——带有一些空格。
希望它有助于更好地理解正则表达式。不幸的是,我不知道 RegExp 有什么好的资源,我只使用MDN。
您是否尝试过使用www.debuggex.com来帮助您处理正则表达式?我认为这是您正在寻找的正则表达式:
^(?:(\d*)(?:\.(\d*))?|\s*)$
它将匹配一个浮点数或一些空格。请注意,浮点数的格式可能很奇怪。例如,0000.10
会匹配。