gpt4 book ai didi

javascript - 正则表达式匹配两个字符串之间的数字在JS中不起作用

转载 作者:行者123 更新时间:2023-12-02 14:36:36 25 4
gpt4 key购买 nike

我有一个正则表达式,它在 regex101 中运行良好,但在 javascript/jquery 中运行不正常,我认为是因为 ?<=表达。如果我省略这部分,它会起作用,但也会替换前面的字符串。我只想替换 URL 中的数字,或者换句话说,替换“foo/”和“/bar”之间的所有数字

我的代码:

<a id="link" href="http://www.domain.com/foo/1234/bar/">Some anchor text</a>
<button>Click</button>

$("button").click(function() {
$('#link').attr('href', function(index, myhref) {
return myhref.replace(/(?<=foo\/)(\d+)(?=\/bar)/,'newnumber');
});
});

我如何修改我的正则表达式才能替换数字?

最佳答案

JavaScript 不支持正向或负向回顾。但是,您可能想 try catch 其组并在替换字符串时使用它们。

例如

var str = 'http://www.domain.com/foo/1234/bar/';
var myvar = 'newnumber';
var newStr = str.replace(/(foo\/)(\d+)(\/bar)/i, '$1' + myvar + '$3');
// Returns "http://www.domain.com/foo/newnumber/bar/"
  • (foo\/) 是第一组,匹配 foo/
  • (\d+) 是第二组,匹配一个或多个任意数字。
  • (\/bar) 是第三组,匹配 /bar
  • '$1'+ myvar +'$3' 返回 第一组 + myvar + 第三组的串联>

关于javascript - 正则表达式匹配两个字符串之间的数字在JS中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37402735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com