【问题标题】:regexp get what is left after the match正则表达式获取比赛后剩下的内容
【发布时间】:2011-09-02 22:46:30
【问题描述】:

所以我有一个带有不同时区选项的选择元素,请参见下面的示例。

<option value="2.0">(GMT +2:00) Kaliningrad, South Africa</option>

我想将(GMT +2:00) 之后的所有内容替换为“当地时间”。 我在下面想出了这个正则表达式,但它只匹配(GMT +2:00),我想定位并更改字符串的其余部分。也许我也应该使用 replace() insted。

var matches = $(this).html().match(/\(GMT [+-][0-9]+:00\)/);
console.log(matches);

【问题讨论】:

    标签: javascript jquery html regex timezone


    【解决方案1】:

    试试这个:

    var finalString = $(this).html().replace(/(\(GMT [+-][0-9]+:00\))(.*)/, "$1 Local Time");
    

    工作示例:http://jsfiddle.net/r65Hp/

    【讨论】:

    • OP 正在使用.html(),它还检索 HTML 标记。使用它会去掉关闭的</option> 标签。
    • 我将.html() 更改为.text() 所以这对我来说没有问题,谢谢@Cyber​​nate
    【解决方案2】:
    $('select.whatever option').text(function(i, text) {   
      return text.replace(/\).*?$/, ') Local Time');
    });
    

    jsFiddle.

    【讨论】:

    • @Null 它具体有什么问题?小提琴没有返回正确的字符串吗?
    • @Null 您可以假设this 是我的示例中的option 元素。
    猜你喜欢
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2014-07-18
    • 2011-11-11
    • 1970-01-01
    • 2018-07-26
    相关资源
    最近更新 更多