使用JavaScript,如何删除最后一个逗号,但仅当逗号是最后一个字符或逗号后面只有空格时?这是我的代码。 我找到了工作fiddle。但它有一个错误。
var str = 'This, is a test.';
alert( removeLastComma(str) ); // should remain unchanged
var str = 'This, is a test,';
alert( removeLastComma(str) ); // should remove the last comma
var str = 'This is a test, ';
alert( removeLastComma(str) ); // should remove the last comma
function removeLastComma(strng){
var n=strng.lastIndexOf(",");
var a=strng.substring(0,n)
return a;
}
答案 0 :(得分:310)
这将删除最后一个逗号及其后的任何空格:
str = str.replace(/,\s*$/, "");
它使用正则表达式:
/
标记正则表达式的开头和结尾
,
与逗号匹配
\s
表示空格字符(空格,制表符等),*
表示0或更多
结尾处的$
表示字符串的结尾
答案 1 :(得分:8)
function removeLastComma(str) {
return str.replace(/,(\s+)?$/, '');
}
答案 2 :(得分:6)
你可以使用slice()方法从字符串中删除最后一个逗号,找到下面的example:
var
答案 3 :(得分:3)
远射到这里
var sentence="I got,. commas, here,";
var pattern=/,/g;
var currentIndex;
while (pattern.test(sentence)==true) {
currentIndex=pattern.lastIndex;
}
if(currentIndex==sentence.trim().length)
alert(sentence.substring(0,currentIndex-1));
else
alert(sentence);
答案 4 :(得分:1)
问题是你删除字符串中的最后一个逗号,而不是逗号,如果它是字符串中的最后一个。所以你应该设置一个if来检查最后一个char是否为','并且如果是,则更改它。
编辑:这真的令人困惑吗?'这是一个随机字符串'
您的代码查找字符串中的最后一个逗号并仅存储“This”,因为,最后一个逗号位于字符串末尾的“This”之后。
答案 5 :(得分:1)
首先,应该检查最后一个字符是否为逗号。 如果存在,请将其删除。
if (str.indexOf(',', this.length - ','.length) !== -1) {
str = str.substring(0, str.length - 1);
}
注意 str.indexOf(',',this.length-','。length)可以简化为str.indexOf(',',this.length-1)
答案 6 :(得分:0)
您可以删除最后一个逗号:
var sentence = "I got,. commas, here,";
sentence = sentence.replace(/(.+),$/, '$1');
console.log(sentence);
答案 7 :(得分:0)
删除最后一个逗号。工作示例
function truncateText() {
var str= document.getElementById('input').value;
str = str.replace(/,\s*$/, "");
console.log(str);
}
<input id="input" value="address line one,"/>
<button onclick="truncateText()">Truncate</button>
答案 8 :(得分:0)
您只能使用Java
String commaFilterString = yourString.substring(0,yourString.length()-1);
答案 9 :(得分:0)
答案较晚,但可能应该会对某人有所帮助。
用于删除字符串中的最后一个字符。
var str = "one, two, three,";
var str2 = str.substring(0, str.length - 1);
alert(str);
alert(str2);
答案 10 :(得分:0)
被高度赞成的答案不仅删除了最后一个逗号,还删除了后面的所有空格。但是,删除以下空格并不是原始问题的一部分。所以:
let str = 'abc,def,ghi, ';
let str2 = str.replace(/,(?=\s*$)/, '');
alert("'" + str2 + "'");
'abc,def,ghi '
答案 11 :(得分:0)
以防它有用或更好:
def root
return nil if application == nil
application.config.root
end
它将替换字符串的以下所有组合结尾:
str = str.replace(/(\s*,?\s*)*$/, "");
答案 12 :(得分:0)
有或没有正则表达式。
我建议两个进程,也考虑删除空间。今天我遇到了这个问题,我通过编写以下代码解决了这个问题。
我希望这段代码能帮助其他人。
//With the help of Regex
var str = " I am in Pakistan, I am in India, I am in Japan, ";
var newstr = str.replace(/[, ]+$/, "").trim();
console.log(newstr);
//Without Regex
function removeSpaceAndLastComa(str) {
var newstr = str.trim();
var tabId = newstr.split(",");
strAry = [];
tabId.forEach(function(i, e) {
if (i != "") {
strAry.push(i);
}
})
console.log(strAry.join(","));
}
removeSpaceAndLastComa(str);