我需要阻止我的用户在文本框中输入非欧洲字符。
例如,这是我禁止使用西里尔字母的方式:
$('.test').keyup(function(e) {
var toTest = $(this).val();
var rforeign = /[\u0400-\u04FF]/i;
if (rforeign.test(toTest)) {
alert("No cyrillic allowed");
$(this).val('');
}
});
但我还需要排除阿拉伯语、日语等。
我只想允许:
- ASCII 英文,标准字符
- 意大利语重音字母:à è ì ò ù á é í ó ú
- 来自欧洲语言的其他特殊字符:法语、德语......
有没有办法用范围做到这一点?
我试过 /[\u0400-\u04FF]/i
但它只允许 ASCII 英语(例如不是意大利语)。
最佳答案
只允许在某些给定范围内使用 unicode 符号,例如
/^[a-z\u00C0-\u00F6\u00F8-\u017E]+$/i
fiddle 示例:https://jsfiddle.net/4y6e6bj5/3/
此正则表达式允许基本拉丁语/拉丁语扩展 A(变音符号和重音字母)。它不包括任何其他字母表/符号。
如果您需要允许其他特定的 unicode 符号,请查看 unicode table并在正则表达式中插入所需数量的范围
关于javascript - 检测非欧洲字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29692914/