我想知道如何使用JavaScript删除字符串中的最后一个单词?
例如,字符串是“我想删除最后一个单词。”
使用删除后,文本框中的字符串将显示“我想删除最后一个”
我已经看过如何使用子字符串函数删除最后一个字符,但因为最后一个字每次都可能不同。有没有办法计算在JavaScript中删除需要多少个单词?
由于
答案 0 :(得分:94)
var str = "I want to remove the last word.";
var lastIndex = str.lastIndexOf(" ");
str = str.substring(0, lastIndex);
获取最后一个空格,然后获取子字符串。
答案 1 :(得分:6)
你可以这样做一个简单的正则表达式:
"I want to remove the last word.".replace(/\w+[.!?]?$/, '')
>>> "I want to remove the last"
查找" "
的最后一个索引可能会更快。这只是更少的代码。
答案 2 :(得分:5)
一种简单的方法是使用JavaScript的lastIndexOf()和substr()方法:
var myString = "I want to remove the last word";
myString = myString.substring(0, myString.lastIndexOf(" "));
答案 3 :(得分:3)
使用split
功能
var myString = "I want to remove the last word";
var mySplitResult = myString.split(" ");
var lastWord = mySplitResult[mySplitResult.length-1]
答案 4 :(得分:2)
answer Amir Raminfar后,我找到了这个解决方案。在我看来,它比接受的答案更好,因为即使你在字符串的末尾有空格,或者在最后一个单词和标点符号之间有空格的语言(如法语),它也能正常工作。
"Je veux supprimer le dernier mot !".replace(/[\W]*\S+[\W]*$/, '')
"Je veux supprimer le dernier"
它还会删除最后一个单词之前的空格和标点符号,这是OP隐式要求的。
和平。
答案 5 :(得分:1)
这个问题的最短答案如下,
var str="I want to remove the last word".split(' ');
var lastword=str.pop();
console.log(str.join(' '));
答案 6 :(得分:1)
为了娱乐而四处闲逛,这是一种有趣而无耻的方式!
"I want to remove the last word.".split(" ").reverse().slice(1).reverse().join(" ")
答案 7 :(得分:0)
您可以匹配后面没有单词字符的空格后的最后一个单词。
word=/s+\W*([a-zA-Z']+)\W*$/.exec(string);
if(word) alert(word[1])
答案 8 :(得分:0)
如果此处的其他任何人试图将字符串名称分为姓和名,请确保处理名称只有单词的情况。
let recipientName = _.get(response, 'shipping_address.recipient_name');
let lastWordIndex = recipientName.lastIndexOf(" ");
let firstName = (lastWordIndex == -1) ? recipientName : recipientName.substring(0, lastWordIndex);
let lastName = (lastWordIndex == -1) ? '' : recipientName.substring(lastWordIndex + 1);