所以我试图有一个输入字段,我可以输入任何字符,然后将输入的值小写,删除任何非字母数字字符,留下“。” 而不是空格。
例如,如果我输入:
Earth is 70% water, -!*#$^^ & 30% LAnd
输出应该是:
earth.is.70.water.30.land
知道如何在不使用 jQuery 屏蔽的情况下做到这一点吗?
所以我试图有一个输入字段,我可以输入任何字符,然后将输入的值小写,删除任何非字母数字字符,留下“。” 而不是空格。
例如,如果我输入:
Earth is 70% water, -!*#$^^ & 30% LAnd
输出应该是:
earth.is.70.water.30.land
知道如何在不使用 jQuery 屏蔽的情况下做到这一点吗?
这不是一个真正的 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, ".");
$(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;
}
});
});
绑定到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;
}
});