Javascript 日文字符的正则表达式

Javascript 日文字符的正则表达式,javascript,regex,unicode,internationalization,cjk,Javascript,Regex,Unicode,Internationalization,Cjk,我正在用Struts进行国际化。我想为日语和英语用户编写Javascript验证。我知道正则表达式适用于英语,但不适用于日语用户。是否可以为两个用户编写一个正则表达式,并基于Unicode进行验证 请帮助我。如果您的文本编辑器和编程语言支持Unicode,您应该能够将日语字符作为文字字符串输入。像[A-X]范围这样的东西通常不会很好地翻译 您试图验证哪种文本 日常表达是用什么语言表达的?Perl兼容、POSIX或其他什么?只要将脚本保存在与页面相同的字符集中(例如,HTML和JavaScript

我正在用Struts进行国际化。我想为日语和英语用户编写Javascript验证。我知道正则表达式适用于英语,但不适用于日语用户。是否可以为两个用户编写一个正则表达式,并基于Unicode进行验证


请帮助我。

如果您的文本编辑器和编程语言支持Unicode,您应该能够将日语字符作为文字字符串输入。像
[A-X]
范围这样的东西通常不会很好地翻译

您试图验证哪种文本


日常表达是用什么语言表达的?Perl兼容、POSIX或其他什么?

只要将脚本保存在与页面相同的字符集中(例如,HTML和JavaScript都是UTF-8或HTML和JavaScript都是Shift_JIS),您就应该能够像对待英语一样对待正则表达式

function isKansai(city) {
    var rxKansai = /(大阪|兵庫|京都|滋賀|奈良|和歌山|osaka|hyo{1,2}go|kyoto|shiga|nara|wakayama)/i;
    return rxKansai.test(city);
}
isKansai('東京'); // false
isKansai('大阪'); // true
isKansai('Tokyo'); // false
isKansai('Osaka') // true

以下是一个正则表达式,可用于匹配所有英文字母数字字符、日语片假名、平假名、多字节字母数字(hankaku和zenkaku)和破折号:

/[一-龠]+|[ぁ-ゔ]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+|[々〆〤]+/u
您可以根据需要对其进行编辑,但请注意末尾的“u”标志


我希望这有帮助

请删除段落的前导空格。。。它被解释为代码,看起来很丑陋谢谢!这帮助我解决了一个问题,即为什么iPhone在使用unicode样式转义(\u3040-\u309F)时不允许正则表达式,但您可能需要更改
ぁ-ん
ぁ-ゔ,作为ゔ 紧随其后ん.就在今天,我还发现了一些未包含的字符<代码>々〤、unicode 3005、3006和3024。3005可能是最重要的,因为它用于像代々木 及時々@shawndreck这很好用。。。但它不允许汉字字符,例如:漢字 那么我们如何使用汉字作为输入。。。我不懂日语。请让我知道…@Shankar,我不确定我是否明白你的问题。你说的“不允许汉字”是什么意思?你是怎么做到的,你得到了什么样的结果?@shawnreck非常简单。。我需要允许汉字字符。那么,我如何修改上面建议的表达式以允许使用汉字字符呢?