数字后的Javascript正则表达式转义点
我想测试一个字符串,该字符串应该以任意数字开头,但后面不能跟一个点,因此我提出了这些regs,代码如下: 我从数字后的Javascript正则表达式转义点,javascript,regex,Javascript,Regex,我想测试一个字符串,该字符串应该以任意数字开头,但后面不能跟一个点,因此我提出了这些regs,代码如下: 我从reg1开始,但它没有返回正确的结果,所以我只是尝试reg2。令人惊讶的是,结果是正确的,但让我困惑的是,这两个reg返回的结果不同,而模式基本上是等效的。有人有什么想法吗?感谢您的所有想法。这应该可以: var re = /^\d+(?!\.)\b/; 问题是,在没有单词边界的正则表达式中,正则表达式只匹配11.1的第一个1,因为下一个不是点,所以返回true。您需要强制它匹配,直到
reg1
开始,但它没有返回正确的结果,所以我只是尝试reg2
。令人惊讶的是,结果是正确的,但让我困惑的是,这两个reg返回的结果不同,而模式基本上是等效的。有人有什么想法吗?感谢您的所有想法。这应该可以:
var re = /^\d+(?!\.)\b/;
问题是,在没有单词边界的正则表达式中,正则表达式只匹配11.1
的第一个1
,因为下一个不是点,所以返回true。您需要强制它匹配,直到达到单词边界
以任何数字开头,后面不带点:
if (/^\d(?!\.)/.test(yourString)) {
// It matches!
} else {
// Nah, no match...
}
这是否适用于替换reg1
newregexp(“^(0-9)+(?!\\)”)
为什么要写\\。
,而只是\d
?有什么区别?@kobi,问得好,但由于某种原因,单反斜杠不起作用,我不知道。RegExp
构造函数需要双斜杠,所以\\d
而不是\d
和\\.
而不是\.
因为它在构造函数中接受字符串。一个反斜杠表示Javascript字符串,第二个反斜杠表示Javascript正则表达式引擎。a…谢谢。这似乎有效。对不起,不仅是个位数,而且是多位数。看起来很有希望。我会试试的。
if (/^\d(?!\.)/.test(yourString)) {
// It matches!
} else {
// Nah, no match...
}