我正在根据选中的复选框构建一个字符串。我写了一个声明,如果选择了多个字符串,将添加复数,但我无法弄清楚如何删除数组中放入'policyHidden'字段的最后两个逗号。
$(document).ready(function(){
$('input:checkbox').change(function() {
var keys = [];
var policies = $('input:checkbox:checked').map(function () {
return $(this).siblings('span').text(); }).get();
$.each(policies, function(key, value) { keys.push(value) });
output = keys.join(", ");
FormSetFieldValue('policyHidden', output);
if (keys.length > 1) {
keys.splice(keys.length - 1, 0, "and");
}
FormSetFieldValue('policyHidden', output);
});
});
示例输出
value1, value2, and, value3
我只想删除最后两个逗号。我应该做一个正则表达式吗?
FYI,FormSetFieldValue是另一个脚本的函数;第一个变量调用想要更改的变量,第二个变量是设置值。不应该对手头的问题产生任何影响。
答案 0 :(得分:1)
我认为将它放在那里 - 然后将其删除 - 是违反直觉的 你不应该首先把它放在你的字符串中:
var output = [];
output[1] = keys.pop();
output[0] = keys.join(', ');
output = output.join(' and ');
答案 1 :(得分:1)
正则表达式是一种选择。你也可以用'和'和'
为',和'做一个javascript替换函数var str = "value1, value2, and, value3"
str.replace(', and,',' and')
你可能不得不逃避逗号。