Javascript正则表达式转义后跟数字

时间:2014-07-04 19:48:56

标签: javascript regex

我想测试一个字符串,该字符串应以任意数字的数字开头但后面没有点,所以我在jsfiddle中提出这些注册码,代码:

var startwith = "some string";
    reg1 = new RegExp("^" + startWith + "[0-9]+(?!\\.)"),
    reg2 = new RegExp("^" + startWith + "\d+(?!\\.)");

var text = "11.1";

console.log(reg1.test(text), reg2.test(text)); // result true, false

我从reg1开始,但无法返回正确的结果,所以我只是尝试reg2。令人惊讶的是,结果是正确的,但令我困惑的是两个regs返回不同的结果,而模式基本相同。有人有什么想法吗?所有的想法都表示赞赏。

2 个答案:

答案 0 :(得分:1)

这应该有效:

var re = /^\d+(?!\.)\b/;

问题是,在没有单词边界的正则表达式中,正则表达式仅匹配1的第一个11.1,并且由于下一个不是点,它返回true。您需要强制匹配,直到达到字边界。

Online Demo

答案 1 :(得分:0)

从任何未跟随点的数字开始:

if (/^\d(?!\.)/.test(yourString)) {
    // It matches!
} else {
    // Nah, no match...
}