Javascript 解释这个正则表达式
我使用这个正则表达式来匹配一些字符串:Javascript 解释这个正则表达式,javascript,regex,Javascript,Regex,我使用这个正则表达式来匹配一些字符串: ^([^\s](-)?(\d+)?(\.)?(\d+)?)$/ 我不明白为什么允许输入两个点,比如。 我的理解是,只允许放置1个破折号,或者不允许放置任何破折号(?) 任何无限制或无限制的数字(\d+)? 一点或无(\)? 为什么允许放置。甚至.4.6 在[^\s]中进行的测试意味着任何不是空白的内容。这包括点。尝试匹配。将使您: [^\s]匹配 (-)不匹配 (\d+)?不匹配 (\)?匹配 (\d+)?不匹配 我假设您想要匹配数字(可能是负数/浮点
^([^\s](-)?(\d+)?(\.)?(\d+)?)$/
我不明白为什么允许输入两个点,比如。
我的理解是,只允许放置1个破折号,或者不允许放置任何破折号(?)
任何无限制或无限制的数字(\d+)?
一点或无(\)?
为什么允许放置。
甚至.4.6
在[^\s]
中进行的测试意味着任何不是空白的内容。这包括点。尝试匹配。
将使您:
[^\s]
匹配
(-)
不匹配(\d+)?
不匹配(\)?
匹配
(\d+)?
不匹配我假设您想要匹配数字(可能是负数/浮点数):
[^\s]
表示任何非空白的内容。这包括点。尝试匹配。
将使您:
[^\s]
匹配
(-)
不匹配(\d+)?
不匹配(\)?
匹配
(\d+)?
不匹配我假设您想要匹配数字(可能是负数/浮点数):
^
([^\s](-)(\d+)(\)(\d+))
[^\s]
\s
(-)
?
-
(\d+)?
?
\d+
+
(\)?
?
\。
(\d+)?
?
\d+
+
$
/
^
([^\s](-)(\d+)(\)(\d+))
[^\s]
\s
(-)
?
-
(\d+)?
?
\d+
+
(\)?
?
\。
(\d+)?
?
\d+
+
$
/
用创建,正如我在评论中提到的,
[^\n]
是一个与
匹配的否定字符类。由于还有另一个(\)?
模式,正则表达式可以匹配两个连续的点(因为除了[^\s]
之外的所有部分都是可选的)
为了不匹配字符串,如.4.5
或。
,只需将
添加到[^\n]
否定字符类:
^([^\s.](-)?(\d+)?(\.)?(\d+)?)$
^
看。这将不允许初始捕获组中有任何
您可以使用“向前看”仅禁止第一个字符作为点:
^(?!\.)([^\s](-)?(\d+)?(\.)?(\d+)?)$
看
所有解释可在在线regex测试员处获得:
要匹配所需格式的数字,请使用:
^(?:[-]?\d+\.?\d*|-)$
易读的解释:
-字符串的开头,然后有两个选项^
-可选连字符[-]?
-1个或多个数字\d+
-可选点\?
-0或更多数字\d*
-或-|
-连字符-
-字符串结尾$
请参见正如我在评论中提到的,
[^\n]
是一个与
匹配的否定字符类。由于还有另一个(\)?
模式,正则表达式可以匹配两个连续的点(因为除了[^\s]
之外的所有部分都是可选的)
为了不匹配字符串,如.4.5
或。
,只需将
添加到[^\n]
否定字符类:
^([^\s.](-)?(\d+)?(\.)?(\d+)?)$
^
看。这将不允许初始捕获组中有任何
您可以使用“向前看”仅禁止第一个字符作为点:
^(?!\.)([^\s](-)?(\d+)?(\.)?(\d+)?)$
看
所有解释可在在线regex测试员处获得:
要匹配所需格式的数字,请使用:
^(?:[-]?\d+\.?\d*|-)$
易读的解释:
-字符串的开头,然后有两个选项^
-可选连字符[-]?
-1个或多个数字\d+
-可选点\?
-0或更多数字\d*
-或-|
-连字符-
-字符串结尾$
请参见哪些字符串需要匹配,哪些字符串不需要匹配
[^\n]
是一个与
匹配的否定字符类。将其添加到[^\n.]
,和。您希望匹配哪些字符串,哪些字符串不希望匹配[^\n]
是一个与
匹配的否定字符类。将其添加到[^\n.]
,然后。完全正确。也许会澄清一下,我怎么可能没注意到呢。非常感谢。完全正确。也许会澄清一下,我怎么可能没注意到呢。非常感谢。我要做的是匹配任何十进制数,包括负数,但不是空字符串。1-允许-1-允许1.-允许-1.-Allowed 1.0-Allowed-1.0-Allowed抱歉,“-”也需要有效。“-”“允许”-“不允许”。“不允许”请不要花费你的全部时间,你已经帮助了一个洛蒂。我正在对键盘进行验证,用户正在写十进制数,他可以开始了