使用逗号删除输入值中的匹配字符串

时间:2013-03-14 11:39:18

标签: jquery replace match

如何在

之前或之后用逗号删除匹配的字符串

前:

<input value="1,2,3,4,5,6,7,8,9,10">

jQuery:

var input = $("input");
var val = input.val();
var random = Math.ceil(Math.random() * 10);
var new_val = val.replace(random,"");

input.val(new_val);

值看起来不像1-10(这是一个例子)

如何在之前或之后删除comman的问题?

考虑匹配的字符串是否具有第一个位置和最后一个位置。所以这是问题

PS:我必须通过字符串找到,而不是索引或其他东西

游乐场:http://jsbin.com/ulikof/1/edit

任何?

2 个答案:

答案 0 :(得分:2)

如果添加,则在选择随机数时添加尾随逗号,它将删除单个逗号并正确显示:

var input = $("input");
var val = input.val();
var random = Math.ceil(Math.random() * 10);

if(val.indexOf(random) != 0) {
  random = ',' + random;
}
else {
  random = random + ','; 
}

var new_val = val.replace(random,"");

input.val(new_val);

答案 1 :(得分:1)

这是一种使用纯JS的通用方法,您可以在不更新代码的情况下添加任意数量的数字。

http://jsfiddle.net/zuMNf/1/

var input = document.getElementsByTagName('input')[0], // [0] or loop through inputs
    val = input.value,
    arr = val.split(','),
    len = arr.length,
    random = Math.ceil(Math.random() * len);

for(var i = 0; i < len; i++) {
    if(parseInt(arr[i]) == random) {
        var j = i;
    }
};

arr.splice(j, 1);

input.value = arr.join(',');