4

所以我试图有一个输入字段,我可以输入任何字符,然后将输入的值小写,删除任何非字母数字字符,留下“。” 而不是空格。

例如,如果我输入:
Earth is 70% water, -!*#$^^ & 30% LAnd

输出应该是:
earth.is.70.water.30.land

知道如何在不使用 jQuery 屏蔽的情况下做到这一点吗?

4

3 回答 3

12

这不是一个真正的 jQuery 问题,它可以用简单的 Javascript 来完成。首先,您需要将文本小写,然后用句点替换空格,然后删除非字母数字:

var myStr = "Earth is 70% water, -!*#$^^ & 30% LAnd"
myStr=myStr.toLowerCase();
myStr=myStr.replace(/ /g,".");
myStr=myStr.replace(/[^a-zA-Z0-9\.]+/g,"");

正如用户输入的那样,这个答案会留下多个空格作为句点。如果您希望它与您的答案匹配(实际上将多个空格压缩为一个),请添加一个额外的替换:

myStr=myStr.replace(/\.+/g, ".");
于 2011-07-19T01:04:21.893 回答
1
$(document).ready(function () {
        $(".ui-widget-content .ui-autocomplete-input").keydown(function (event) {


            if (event.shiftKey) {
                return false;
            }
                            if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 97 && event.keyCode <= 122) || (event.keyCode >= 65 && event.keyCode <= 90)) 
                            {
                                return true;
                            }
                            else {
                                return false;
                            }
        });
    });
于 2012-05-21T14:10:41.663 回答
0

绑定到keyPress事件并取消非字母数字字符。

示例代码:

$("#target").keypress(function(event) { 
    var key = event.which;
    var keychar = String.fromCharCode(key).toLowerCase();
    // allow control keys
    if ((key==null) || (key==0) || (key==8) || 
        (key==9) || (key==13) || (key==27) )
         return true;

    if ((("abcdefghijklmnopqrstuvwxyz0123456789").indexOf(keychar) == -1)) 
       event.preventDefault();   
       return false;
    }   
});
于 2011-07-19T01:00:37.677 回答