我有一串包含aaa, bbb, ccc, ddd, eee, fff
等值的字符串。长度总是不同的。
我需要删除没有,
的最后一个值,所以它应该是:
aaa, bbb, ccc, ddd, eee,
有办法吗?
答案 0 :(得分:1)
使用String#split
和Array#join
方法。
var str = 'aaa, bbb, ccc, ddd, eee, fff.';
// split string by separator ,
var s = str.split(',');
// update the last element in the array
s[s.length - 1] = '';
// join it back again
console.log(
s.join(',')
)

<小时/> 或使用
String#replace
方法。
var str = 'aaa, bbb, ccc, ddd, eee, fff.';
// remove any combination which doesn't include ,
console.log(
str.replace(/[^,]+$/, '')
)
&#13;
答案 1 :(得分:1)
您应该使用lastIndexOf
来处理此类情况:
var str = "aaa, bbb, ccc, ddd, eee, fff";
var newStr = str.substring(0, str.lastIndexOf(',')+1);
console.log(newStr)
var str2 = "aaa, bbb, ccc, ddd, eee, fff,";
var newStr2 = str2.substring(0, str2.lastIndexOf(',')+1);
console.log(newStr2)
根据@ RomanPerekhrest的评论,如果我们想要替换上一个有效值(逗号后跟字符),您可以尝试这样的事情。
var str = "aaa, bbb, ccc, ddd, eee, fff,,,,";
var regex = /(?!,)(.\w+)/g;
var lastMatch = str.match(regex).pop();
var finalStr = str.split(lastMatch)[0]
console.log(finalStr)
答案 2 :(得分:1)
您可以使用正则表达式执行此操作:
"aaa, bbb, ccc, ddd, eee, fff".replace(/[^,]+$/, "");
在这里,我替换了不是+
:,
并且位于字符串末尾的尽可能多的字符[^,]
:$
答案 3 :(得分:0)
这可能是你想要的:
var str = "aaa, bbb, ccc, ddd, eee";
var arr = str.split(' ');
if (arr[arr.length -1].indexOf(',') > -1) {
arr.pop();
}
var newStr = arr.join(' ');
console.log(newStr);
答案 4 :(得分:0)
您可以替换之前的最后一个单词和空格。
var string = 'aaa, bbb, ccc, ddd, eee, fff';
console.log(string.replace(/\s+\w+$/, ''));
答案 5 :(得分:0)
Thread.currentThread().getContextClassLoader().getResourceAsStream("test.jsp");
答案 6 :(得分:0)
您可以通过拆分字符串然后加入来完成。
var old_string = "aaa, bbb, ccc, ddd, eee, fff";
//transform it into a array
var array_string = old_string.split(',');
//removing the last index
array_string.pop();
//make it a string again
var new_string = array_string.join(',');
alert(new_string);