【问题标题】:Remove matching string in input value with comma用逗号删除输入值中的匹配字符串
【发布时间】:2013-03-14 11:39:18
【问题描述】:

如何删除前后带逗号的匹配字符串

例如:

<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

有吗?

【问题讨论】:

    标签: jquery replace match


    【解决方案1】:

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

    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);
    

    【讨论】:

    • 10 这样的最后一个字符串不能被10, 替换,它没有找到
    • + else if (val === random) {random = random} ,如果只剩下一个字符串
    【解决方案2】:

    这是一种使用纯 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(',');
    

    【讨论】:

    • 不,我必须用字符串而不是索引来查找
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    相关资源
    最近更新 更多