Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数字后的Javascript正则表达式转义点_Javascript_Regex - Fatal编程技术网

数字后的Javascript正则表达式转义点

数字后的Javascript正则表达式转义点,javascript,regex,Javascript,Regex,我想测试一个字符串,该字符串应该以任意数字开头,但后面不能跟一个点,因此我提出了这些regs,代码如下: 我从reg1开始,但它没有返回正确的结果,所以我只是尝试reg2。令人惊讶的是,结果是正确的,但让我困惑的是,这两个reg返回的结果不同,而模式基本上是等效的。有人有什么想法吗?感谢您的所有想法。这应该可以: var re = /^\d+(?!\.)\b/; 问题是,在没有单词边界的正则表达式中,正则表达式只匹配11.1的第一个1,因为下一个不是点,所以返回true。您需要强制它匹配,直到

我想测试一个字符串,该字符串应该以任意数字开头,但后面不能跟一个点,因此我提出了这些regs,代码如下:

我从
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...
}