如果它是-
,如何替换某个子字符串后面的字符?我正在使用正则表达式匹配并替换子字符串本身,但如果它是连字符,我还希望紧跟其后的字符。
例如:
$('.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
之后,我希望能够在字符串idq
之后确定_href字符串上的下一个字符。如果字符是-
,那么我想用''
(空字符串)替换它。如果它是别的东西,我希望它被忽略。
答案 0 :(得分:1)
使用?
正则表达式运算符,该运算符可选地匹配前面的元素。如果它在那里,它将被替换。如果没有,则仅替换原始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, ''));
});