javascript - 检测非欧洲字符

标签 javascript regex latin

我需要阻止我的用户在文本框中输入非欧洲字符。

例如,这是我禁止使用西里尔字母的方式:

$('.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/

相关文章:

Javascript 幻灯片滑动

javascript - 查找 DOM 中哪个元素被单击

javascript - ng-view 不会在移动设备上自动隐藏地址/导航栏

python - 在提取列之后立即将 df[col].str.extract() 结果插入原始 Pandas df 的 pandanic 方式

当文件包含拉丁字符时,CreateFile 失败 (ERROR_FILE_NOT_FOUND)

javascript - 对 js 文件中的 html 内容执行 javascript

C# 替换多个 href 值

带有正则表达式 youtube 视频 ID 的 Javascript 格式数组

hadoop - 改革 pig 拉丁成绩

prolog - 极其低效且不优雅的代码