正则expression式为阿拉伯语言
我想写一个正则expression式来匹配一个句子中的每个单词:
我的正则expression式:“ \b(\w+)\b
”
结果:
虽然它适用于英文单词。 使用阿拉伯语单词时不起作用。 我怎么能做到阿拉伯语的同样壮举?
尝试这个:-
function HasArabicCharacters(text) { var arregex = /[\u0600-\u06FF]/; alert(arregex.test(text)); }
阿拉伯字符集的列表
[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]
Unicode中的阿拉伯文脚本:
从Unicode 6.1开始 ,阿拉伯语脚本包含在以下块中:
Arabic (0600—06FF, 225 characters) Arabic Supplement (0750—077F, 48 characters) Arabic Extended-A (08A0—08FF, 39 characters) Arabic Presentation Forms-A (FB50—FDFF, 608 characters) Arabic Presentation Forms-B (FE70—FEFF, 140 characters) Rumi Numeral Symbols (10E60—10E7F, 31 characters) Arabic Mathematical Alphabetic Symbols (1EE00—1EEFF, 143 characters)
内容取自wikipedia – Unicode中的阿拉伯语脚本
我build议这样做:
\p{InArabic}
你可以使用函数来翻译Aracbic字符列表,它很简单。
像:
function (regexStr) { regexStr = replace(regexStr,"ۿ","\u0600"); regexStr = replace(regexStr,"","\u06FF"); return regexStr; }
或者在另一个想法replace[alf]和[雅]来正确地看到你的文字方向
var regexStr = "/[[alf]-[ya]]/"; function (regexStr) { regexStr = replace(regexStr,"[alf]","\u0600"); regexStr = replace(regexStr,"[ya]","\u06FF"); return regexStr; }