删除角色的最后两个实例

时间:2012-01-25 19:58:16

标签: javascript jquery

我正在根据选中的复选框构建一个字符串。我写了一个声明,如果选择了多个字符串,将添加复数,但我无法弄清楚如何删除数组中放入'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是另一个脚本的函数;第一个变量调用想要更改的变量,第二个变量是设置值。不应该对手头的问题产生任何影响。

2 个答案:

答案 0 :(得分:1)

我认为将它放在那里 - 然后将其删除 - 是违反直觉的 你不应该首先把它放在你的字符串中:

var output = [];
output[1] = keys.pop();
output[0] = keys.join(', ');

output = output.join(' and ');

这是小提琴:http://jsfiddle.net/yfKjp/

答案 1 :(得分:1)

正则表达式是一种选择。你也可以用'和'和'

为',和'做一个javascript替换函数
var str = "value1, value2, and, value3"
str.replace(', and,',' and')

你可能不得不逃避逗号。