Javascript 正则表达式查找落后:无效正则表达式:/(?<;=\)\S+;$/:无效组
我有下面的regexpJavascript 正则表达式查找落后:无效正则表达式:/(?<;=\)\S+;$/:无效组,javascript,regex,Javascript,Regex,我有下面的regexp (?<=\.)\S+$ (?您不能在JavaScript正则表达式中使用look behinds。虽然有一些,但它们都有自己的缺陷。为了安全起见,请使用捕获组。这里,您需要的内容将在第二组中: (\.)([^.]+)$ 或者,仅使用一个捕获组(以提高性能): 代码: var re=/\([^.]+)$/; var str='test.txt'; var-m; 如果((m=re.exec(str))!==null){ 如果(m.index==re.lastI
(?<=\.)\S+$
(?您不能在JavaScript正则表达式中使用look behinds。虽然有一些,但它们都有自己的缺陷。为了安全起见,请使用捕获组。这里,您需要的内容将在第二组中:
(\.)([^.]+)$
或者,仅使用一个捕获组(以提高性能):
代码:
var re=/\([^.]+)$/;
var str='test.txt';
var-m;
如果((m=re.exec(str))!==null){
如果(m.index==re.lastIndex){
re.lastIndex++;
}
警报(m[1]);
}
由于babel加载程序错误
替换var re=/(?不,我没有:)这只是为了举例说明。我不知道,谢谢。有关于这方面的文档吗?它捕获了第一个点之后的所有内容,如果有多个点的话。@Mintsoup:这是一个很好的观点,我们应该限制所有不是句点的内容。答案已更新。@BeNdErR:我想你可以在这里找到很多关于JavaScript的外观,等等所以,或者看看MDN Regex reference()。如果您对解决方法特别感兴趣,这里有一个很好的资源:。只是在regex101的左上角有一个关于未来的注释,上面写着“口味”,您可以选择Javascript而不是PCRE来查看后面的外观是否有效谢谢,我从未注意到这一点
var re = /(?<=\.)\S+$/;
var str = 'test.txt';
var m;
if ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
(\.)([^.]+)$
\.([^.]+)$