javascript - 替换子字符串和可选的后续字符

标签 javascript jquery regex replace

如果某个子字符串后面的字符是 -,如何替换它?我使用正则表达式来匹配和替换子字符串本身,但我也想匹配紧随其后的字符(如果它是连字符)。

例如:

$('.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/

相关文章:

jquery - 下载pdf后如何停止进度指示器

javascript - 使用 javascript 删除 iframe

javascript - Jquery 文件未在浏览器上加载

javascript - 如何在编程语言之间共享数据

javascript - 使用纯 JavaScript 将数据发送到 python cgi 脚本,以便从浏览器进行处理

jQuery 验证 - 验证特定字段按键的特定规则/方法

javascript - 验证不带任何 http 、 https 或 ftp 的 URL

javascript - 清除垂直选项卡中的 div 的功能不起作用

javascript - iframe 内容最大滚动高度和跨浏览器中的滚动顶部?

jquery - 如何简化我的 Jquery 代码