我需要阻止我的用户在文本框中输入非欧洲字符。
例如,这是我如何禁止西里尔语:
$('.test').keyup(function(e) {
var toTest = $(this).val();
var rforeign = /[\u0400-\u04FF]/i;
if (rforeign.test(toTest)) {
alert("No cyrillic allowed");
$(this).val('');
}
});
但我还需要排除阿拉伯语,日语等。
我只想允许:
有没有办法用范围来做?
我尝试了/[\u0400-\u04FF]/i
,但它只允许ASCII英语(例如非意大利语)。
答案 0 :(得分:5)
只允许给定范围内的unicode符号,例如
/^[a-z\u00C0-\u00F6\u00F8-\u017E]+$/i
示例小提琴:https://jsfiddle.net/4y6e6bj5/3/
这个正则表达式允许基本的拉丁语/拉丁语扩展A(变音符号和重音字母)。它排除了任何其他字母/符号。
如果您需要允许其他特定的unicode符号,请查看unicode table并在正则表达式中插入所需数量的范围
答案 1 :(得分:0)
使用否定集:
[^A-Za-zàèìòùáéíóú(othercharacters..)]