Javascript 正则表达式匹配具有非混合 unicode 字符范围的字符串

标签 javascript regex unicode

我需要一些有关 Javascript 正则表达式的帮助。

我正在尝试匹配仅包含基本拉丁 (ASCII) 字符或仅包含希腊语 Unicode 字符的任何字符串。不允许包含来自这两个集合的混合字符的字符串。

我有一个匹配完全相反的正则表达式(所有字符串至少包含一个希腊字符和一个拉丁字符),但找不到一种方法来否定它:

https://regex101.com/r/JHzmhc/1

提前致谢。

最佳答案

你可以使用

^(?:[\u0000-\u007F]+|[\u0370-\u03FF]+)$

参见 regex demo

详细信息:

  • ^ - 字符串的开始
  • (?: - 非捕获组的开始(以便 anchor 可以应用于两个替代项):
    • [\u0000-\u007F]+ - 1+ 个 ASCII 字符
    • | - 或者
    • [\u0370-\u03FF]+ - 1+ 个希腊字符
  • ) - 组结束
  • $ - 字符串结尾。

关于Javascript 正则表达式匹配具有非混合 unicode 字符范围的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44701517/

相关文章:

javascript - 用于 jquery 和点击事件的 DataTables 插件

javascript - 正则表达式 : numbers and few special characters

python - 使用 Python 2.7 通过 gunicorn 将 bz2 压缩数据作为 utf-8 字符串发送

html - 悬停时未突出显示链接中的 Unicode 字符

javascript - 无法在 Heroku 中仅通过 https 访问 http 上的 cookie

javascript - 在 Selectize.js 项目中呈现 Angular Directive(指令)

java - 如何在java中将camelCase字符串转换为下划线,保留一些大写,其余的小写?

regex - 正则表达式提取具有匹配单词的整个句子

ruby - 如何在 Ruby 中检测字符串中的某些 Unicode 字符?

javascript - 限制 HTML5 textarea 中的行数