【问题标题】:JavaScript: How to remove last word from a string only if the word contains an integer 0-9?JavaScript:仅当单词包含整数0-9时,如何从字符串中删除最后一个单词?
【发布时间】:2018-08-21 06:26:41
【问题描述】:

所以我知道我可以使用 lastIndexOf(" ") 从单词字符串中删除最后一个单词,但我想添加一个条件,即只有当单词包含整数 0 时才应删除它-9.

我之所以问,是因为我想将公司名称与其参考标签(如果存在此类标签)分开以获得数据列表。这些参考标签保证至少包含一个整数 0-9。例如,我有字符串“Cisco Systems RX4510”,我想删除“RX4510”以获得公司名称“Cisco Systems”。但是,对于另一个没有引用标签的字符串“Electronic Arts”,我就不管它了。

任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: javascript string if-statement


    【解决方案1】:

    使用正则表达式,在最后一个空格之后,向前查找数字字符,然后匹配单词字符直到字符串结尾,$

    const str1 = 'Cisco Systems RX4510';
    const str2 = 'Electronic Arts';
    const re = / (?=.*\d)\w+$/;
    console.log(str1.replace(re, ''));
    console.log(str2.replace(re, ''));

    请注意,这也会替换最后一个单词之前的空格。如果要保留最后一个空格,请改用单词边界:

    /\b(?=.*\d)\w+$/
    

    【讨论】:

      【解决方案2】:

      您可以使用s.charAt(s.length) 获取最后一个字符(有更简洁的方法,但此方法支持非常旧的浏览器),然后使用parseIntisNaN 检查它是否是一个数字。示例:

      if (!isNaN(parseInt(s.charAt(s.length), 10))) {
          // do something
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-27
        • 1970-01-01
        • 1970-01-01
        • 2015-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多