只有在RegEx Javascript中具有确切的出现次数时才替换

时间:2015-11-27 19:50:32

标签: javascript regex url

我有另一个正则表达式问题,似乎docs中所说的不起作用,可能是我遗漏了一些东西。这是我的代码段



var uri = 'http://127.0.0.1:7777/users/56e8203d';
var replaceUri = uri.replace(/\/(\w+){8}$/, '');

console.log(replaceUri);




我打算在这里做的是在符合出现次数的情况下替换匹配的字母数字字符。我认为我被错误地应用了x {n}正则表达式算法。

这意味着它只会在检测到ID时才会替换,即8个字符。

谢谢!

1 个答案:

答案 0 :(得分:1)

你的正则表达式/\/(\w+){8}$/有一个问题:嵌套量词。您正在匹配1个或多个字母数字(\w+)8次({8})。请注意,量词应用于左侧的相邻构造:单个字符,字符类,速记字符类或分组。 (请注意,您不能将量词放在外观或字符串的开头)。

要在/之后仅匹配字符串末尾的8个字母数字,请使用

\/\w{8}$

请参阅下面的演示:

var uri = 'http://127.0.0.1:7777/users/56e8203d';
var replaceUri = uri.replace(/\/\w{8}$/, '');
console.log(replaceUri);