【问题标题】: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) 获取最后一个字符(有更简洁的方法,但此方法支持非常旧的浏览器),然后使用parseInt 和isNaN 检查它是否是一个数字。示例:
if (!isNaN(parseInt(s.charAt(s.length), 10))) {
// do something
}