从string中删除最后一个逗号
使用JavaScript,我怎样才能删除最后一个逗号,但只有当逗号是最后一个字符或逗号后面只有空格? 这是我的代码。 我有一个工作小提琴 。 但它有一个错误。
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; }
这将删除后面的最后一个逗号和任何空格:
str = str.replace(/,\s*$/, "");
它使用正则expression式:
-
/
标记正则expression式的开始和结束 -
该匹配逗号
-
\s
表示空格字符(空格,制表符等),*
表示0或更多 -
最后的
$
表示string的结尾
function removeLastComma(str) { return str.replace(/,(\s+)?$/, ''); }
这里远射
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);
您可以使用slice()方法从string中删除最后一个逗号,查找下面的示例 :
var strVal = $.trim($('.txtValue').val()); var lastChar = strVal.slice(-1); if (lastChar == ',') { strVal = strVal.slice(0, -1); }
问题是你删除了string中的最后一个逗号,而不是逗号,如果它是string中的最后一个字符。 所以你应该放一个if来检查最后一个字符是否是',',如果是的话就改一下。
编辑:这真的是令人困惑?
'这是一个随机串'
你的代码从string中find最后一个逗号,只存储“This”,因为最后一个逗号在“This”之后,而不是在string的末尾。