首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换子字符串和可选的后续字符。

问替换子字符串和可选的后续字符。
EN

Stack Overflow用户
提问于 2014-09-13 09:07:09
回答 1查看 169关注 0票数 1

如果是-,如何替换某个子字符串后面的字符?我正在使用正则表达式来匹配和替换子字符串本身,但如果它是连字符,我也希望匹配紧跟在该字符后面的字符。

例如:

代码语言:javascript
复制
$('.classg').on("click", function() {
    idq = $(this).attr('name');

    var _href = $('.classh').children("a").attr("href");

    $('.classh').children("a").attr("href", _href.replace(idq, ''));

    // ...
});

HTML:

代码语言:javascript
复制
<p class="classg"><a href="posting.php?topic_id=123456789">Answer</a></p>

<li class="classh" name="16992964">Multiquote</li>

在替换idq之后,我希望能够确定_href字符串中的下一个字符在字符串idq之后。如果字符是-,那么我想用'' (空字符串)替换它。如果是别的什么,我想让它被忽视。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-13 09:19:11

使用? regex运算符,它可选择匹配前面的元素。如果它在那里,它就会被取代。如果没有,则只替换原始ID。

由于模式的其余部分位于变量中,所以可以构造如下所示的RegExp对象:var re = new RegExp(idq + "\\-?");。

这与idq的第一次出现相匹配,可选地后面跟着连字符(-)。

代码语言:javascript
复制
$('.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, ''));
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25821622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档