不要在javascript中使用正则表达式捕获匹配的字符串部分

时间:2017-04-13 14:24:04

标签: javascript regex

我正在尝试捕获匹配字符串的一部分。这就是我所做的:

var myRegex = /(^[0-9]{2}\.[0-9]{2}\.|$)/;
vary myString = "33.11.999";
var match = myRegex.exec(myString);
console.log(match[1]);

控制台将输出33.11。但我想排除最后一个点。是否可以使用正则表达式来实现?

3 个答案:

答案 0 :(得分:1)

您可以使用positive lookahead (?=)忽略最后一个点。

var myRegex = /(^[0-9]{2}\.[0-9]{2}(?=\.)|$)/;
var myString = "33.11.999";
var match = myRegex.exec(myString);
console.log(match[1]);

答案 1 :(得分:1)

那么为什么不捕捉你想要的部分?

var myRegex = /(^[0-9]{2}\.[0-9]{2})\.|$/;
var myString = "33.11.999";
var match = myRegex.exec(myString);
console.log(match[1]);

答案 2 :(得分:1)



var regex=/\d+\.\d+(?=\.\d+)/;
var str='33.11.999';
var result=str.match(regex);
console.info(result[0]);




你也可以这样写。