如何删除最后一个逗号?
此代码生成一个逗号分隔的字符串,以便为另一个页面的查询字符串提供id列表,但字符串末尾有一个额外的逗号。 如何删除或避免使用额外的逗号?
$(document).ready(function() { $('td.title_listing :checkbox').change(function() { $('#cbSelectAll').attr('checked', false); }); }); function CotactSelected() { var n = $("td.title_listing input:checked"); alert(n.length); var s = ""; n.each(function() { s += $(this).val() + ","; }); window.location = "/D_ContactSeller.aspx?property=" + s; alert(s); }
使用Array.join
var s = ""; n.each(function() { s += $(this).val() + ","; });
变为:
var a = []; n.each(function() { a.push($(this).val()); }); var s = a.join(', ');
s = s.substring(0, s.length - 1);
您可以将String.prototype.slice
方法与负的endSlice
参数一起使用:
n = n.slice(0, -1); // last char removed, "abc".slice(0, -1) == "ab"
或者您可以使用$.map
方法构建逗号分隔的字符串:
var s = n.map(function(){ return $(this).val(); }).get().join(); alert(s);
您可以直接跳过添加它,而不是删除它:
var s = ''; n.each(function() { s += (s.length > 0 ? ',' : '') + $(this).val(); });
使用substring
var strNumber = "3623,3635,"; document.write(strNumber.substring(0, strNumber.length - 1));
使用’普通’javascript:
var truncated = s.substring(0, s.length - 1);
更原始的方法是将each
循环更改为for
循环
for(var x = 0; x < n.length; x++ ) { if(x < n.length - 1) s += $(n[x]).val() + ","; else s += $(n[x]).val(); }
到目前为止,Sam的答案是最好的,但我认为在这种情况下, 地图将是比每个人更好的选择。 您正在将元素列表转换为其值列表,这正是map
设计的类型。
var list = $("td.title_listing input:checked") .map(function() { return $(this).val(); }) .get().join(', ');
编辑:哎呀,我错过了CMS让我使用map
,他只是把它隐藏在我跳过的slice
建议之下。
您可以使用以下扩展方法:
String.prototype.trimEnd = function (c) { c = c ? c : ' '; var i = this.length - 1; for (; i >= 0 && this.charAt(i) == c; i--); return this.substring(0, i + 1); }
所以你可以使用它:
var str="hello,"; str.trimEnd(',');
输出: 你好 。
有关更多扩展方法,请查看以下链接: Javascript帮助方法
s = s.TrimEnd(",".ToCharArray());
写一个javascript函数:
var removeLastChar = function(value, char){ var lastChar = value.slice(-1); if(lastChar == char) { value = value.slice(0, -1); } return value; }
像这样用它:
var nums = '1,2,3,4,5,6,'; var result = removeLastChar(nums, ','); console.log(result);
jsfiddle演示