【问题标题】:How to allow only one space in JavaScript real time filtering如何在 JavaScript 实时过滤中只允许一个空格
【发布时间】:2014-02-18 07:59:49
【问题描述】:

我正在使用下面的这个自定义函数从文本字段中去除不需要的字符,这是实时完成的。问题是它允许空格,用户可以输入任意数量的空格,但我只允许一个空格。

有可能吗?

function mask8(x){
        var string = document.getElementById(x)
        var regex = /[^A-Za-z ]/gi;
        $("#"+x).removeClass("error");
        if(string.value.search(regex) > -1) {
            string.value = string.value.replace(regex, "");
            $("#"+x).addClass("error");
        }
    }

【问题讨论】:

    标签: javascript


    【解决方案1】:

    如果您只想将多个空格自动折叠成一个空格而不使其成为错误条件,您可以这样做:

    function mask8(x){
        var obj = document.getElementById(x);
        var val = obj.value;
        var illegalChars = /[^A-Za-z ]/gi;
        $("#"+x).removeClass("error");
        // automatically collapse multiple spaces down to a single space, 
        // don't make it an error condition
        val = val.replace(/\s+/g, " ");
        if(val.search(illegalChars) > -1) {
            val = val.replace(illegalChars, "");
            $("#"+x).addClass("error");
        }
        obj.value = val;
    }
    

    如果你想让多个空格成为错误条件,那么你可以这样做:

    function mask8(x){
        var obj = document.getElementById(x);
        var val = obj.value;
        var illegalChars = /[^A-Za-z ]/gi;
        var illegalCharsOrMultipleSpaces = /[^A-Za-z ]|\s\s/gi;
        $("#"+x).removeClass("error");
        if(val.search(illegalCharsOrMultipleSpaces) > -1) {
            obj.value = val.replace(illegalChars, "").replace(/\s+/g, " ");
            $("#"+x).addClass("error");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-02-11
      • 2020-04-21
      • 2016-01-20
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 2016-03-24
      相关资源
      最近更新 更多