Javascript删除后他的最后一个字符

时间:2017-01-05 13:54:34

标签: javascript

我有一串包含aaa, bbb, ccc, ddd, eee, fff等值的字符串。长度总是不同的。

我需要删除没有,的最后一个值,所以它应该是:

aaa, bbb, ccc, ddd, eee,

有办法吗?

7 个答案:

答案 0 :(得分:1)

使用String#splitArray#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方法。

&#13;
&#13;
var str = 'aaa, bbb, ccc, ddd, eee, fff.';

// remove any combination which doesn't include ,
console.log(
  str.replace(/[^,]+$/, '')
)
&#13;
&#13;
&#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);