0

如果我们只允许字符和空格,我们通常会在 javascript 中比较 ASCII 值。但是,如果我们支持多种语言,检查将无法正常工作。请在这方面给我建议,考虑其他语言的任何其他方式......我们通常使用的javascript是这样的-->

function charAndSpacesOnly(objEvent) {
    if((objEvent.keyCode>=97 && objEvent.keyCode<=122) || (objEvent.keyCode>=65 && objEvent.keyCode<=90) || (objEvent.keyCode==32) || (objEvent.keyCode==45)) {      
        return true;
    } else {
        return false;
    }
    return false;     
}
4

2 回答 2

0

我想这与objEvent.keyCode<=122. 所以 122 之后的所有字符(其他语言)都被排除在外。

于 2012-12-13T07:07:27.937 回答
0

那是因为您非常严格地只允许使用 26 个拉丁字母,没有任何变音符号,更不用说东方、西里尔或汉字。

可以扩展 if 以支持所有这些字符。只需从 Internet 上获取包含所有这些代码的表格,在一两天内,您就可以实现每一个合理的 unicode 字符范围。

但我认为你应该问问自己是否需要这个限制。如果他们愿意,人们总是可以输入垃圾,并且AaAaAaAaAa(您的检查没问题)真的比Golez Trol the 3rd

PS:你else {return false;}的已经过时了。

于 2012-12-13T07:06:29.797 回答