如果某个子字符串后面的字符是 -
,如何替换它?我使用正则表达式来匹配和替换子字符串本身,但我也想匹配紧随其后的字符(如果它是连字符)。
例如:
$('.classg').on("click", function() {
idq = $(this).attr('name');
var _href = $('.classh').children("a").attr("href");
$('.classh').children("a").attr("href", _href.replace(idq, ''));
// ...
});
HTML:
<p class="classg"><a href="posting.php?topic_id=123456789">Answer</a></p>
<li class="classh" name="16992964">Multiquote</li>
替换idq
后,我希望能够确定_href字符串上紧随字符串idq
之后的下一个字符是什么。如果字符是 -
那么我想将其替换为 ''
(空白字符串)。如果是其他内容,我希望它被忽略。
最佳答案
使用 ?
正则表达式运算符,它可以选择匹配前面的元素。如果存在,它将被替换。如果不是,则仅替换原始ID。
由于模式的其余部分位于变量中,因此您可以像这样构造 RegExp 对象:var re = new RegExp(idq + "\\-?");
。
这与第一次出现的 idq
匹配,后面可以选择连字符 (-
)。
$('.classg').on("click", function() {
var idq = $(this).attr('id'); // ID will be a number example : 998352
var _href = $('.classh').children("a").attr("href");
var re = new RegExp(idq + "\\-?");
$('.classh').children("a").attr("href", _href.replace(re, ''));
});
关于javascript - 替换子字符串和可选的后续字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25821622/