更改正则表达式以允许英文和日文字符

Posted

技术标签:

【中文标题】更改正则表达式以允许英文和日文字符【英文标题】:Change RegEx to allow for both English & Japanese characters 【发布时间】:2013-02-15 13:41:21 【问题描述】:

这是我的正则表达式代码:

"onlyLetterSp": 
    "regex": /^[a-zA-Z\ \']+$/,
    "alertText": "* Letters only"

如何更改此设置以允许英文字符和日文字符?

【问题讨论】:

你有我的注意,先生,我会和你一起等待答案。不知道如何帮助你:( 我对 JS 的回答(也可用于 php),但目前,我正在研究更完整的答案...***.com/questions/15033196/… 看看here 的任何 unicode 字 char 减数字,它似乎是 \pL 但它已经晚了,而且文档很大,所以我只是略读。认为使用大写字母很奇怪,因为这些通常是否定的。该文档显示了排除希腊语等集合的示例。我希望这很有用。 @VictoriaFrench:PCRE、AFAIK 未实现集合交集和集合减法。只有 Java 正则表达式实现字符集交集和并集。 您的标签有点混乱。我得到[正则表达式]。代码看起来像 javascript,所以我得到了 [jquery] 之一。但是 [php] 呢? 【参考方案1】:

我找到了这个链接:

http://www.localizingjapan.com/blog/2012/01/20/regular-expressions-for-japanese-text/

对于不同类型的日语显然有几种不同的字符集。

例如平假名是:

[\x3041-\x3096]

【讨论】:

我想检查英文字符和日文。 @MarshallHouse:那只是平假名。日文文本也由片假名和汉字(属于 CJK 表意文字块)组成。 也许 /^[\x3041-\x3096\x30A0-\x30FF\x3400-\x4DB5\x4E00-\x9FCB\xF900-\xFA6A\x2E80-\x2FD5a-zA-Z]+/u $/ (不确定 /u 是在 $/ 之前还是之后。我一直在读 /u 是需要的。 这显然是要走的路。将 unicode 间隔放入 regexp 类中。【参考方案2】:

您一定在寻找u 正则表达式修饰符,它代表Unicode。有了它,您可以使用诸如 \w 之类的 POSIX 符号来包含您喜欢的任何“单词”字符

【讨论】:

以上是关于更改正则表达式以允许英文和日文字符的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中如何用正则表达式检测某个字段是不是带有日文字符

具有奇怪行为的正则表达式:将字符串与反向引用匹配以允许转义以及单引号和双引号

正则表达式日记

只允许英文字符和数字进行文本输入

正则表达式学习笔记

车牌号校验正则表达式