【问题标题】:JavaScript(regex): excluding matches from outputJavaScript(正则表达式):从输出中排除匹配项
【发布时间】:2012-05-22 11:44:24
【问题描述】:

我有这个文本: nisi non text600 elit 其中 600 是动态添加的。我怎样才能得到它?

var str = ('nisi non text600 elit').match(/text\d+/);
alert(str);

这会提醒 text600,我怎样才能只提醒 600 而无需额外替换单词 text(如果可能的话)?

感谢您的帮助,谢谢!

【问题讨论】:

    标签: javascript jquery regex


    【解决方案1】:
    var str = ('nisi non text600 elit').match(/text(\d+)/);
    alert(str[1]);
    

    【讨论】:

    • 给出错误消息,因为str 为空。您必须删除正则表达式文字周围的撇号。
    【解决方案2】:

    使用括号捕捉正则表达式中的组:

    var str = ('nisi non text600 elit').match(/text(\d+)/)[1];
    

    注意:正则表达式文字不是字符串,因此不应在其周围使用撇号。

    【讨论】:

      【解决方案3】:

      请查看此工作jsFiddle。您需要在正则表达式中捕获某些内容,这是使用() 完成的。

      结果将是一个数组,其中索引0 是应用于字符串的整个匹配项,以下索引是您的捕获。

      【讨论】:

      • 数组中的索引 0 包含整个匹配项,而不是整个输入字符串。
      【解决方案4】:
      alert(str.substr(14, 16) )
      

      试试这个

      【讨论】:

      • 虽然这在这种情况下会起作用,但它完全依赖于每次都在字符串中完全相同的位置的特定序列。这使得它在可变内容字符串中的实际使用中相当脆弱。另外,不是我的反对票。
      • 数字是动态的,所以并不总是3位数。
      猜你喜欢
      • 2017-03-04
      • 2022-12-11
      • 2022-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      • 2010-11-16
      相关资源
      最近更新 更多