文中の各単語に一致する正規表現を書きたい:
私の正規表現:" \b(\w+)\b
"
結果:
それは英単語でうまく機能しますが。アラビア語を使用している場合は機能しません。アラビア語で同じ偉業を達成するにはどうすればよいでしょうか?
文中の各単語に一致する正規表現を書きたい:
私の正規表現:" \b(\w+)\b
"
結果:
それは英単語でうまく機能しますが。アラビア語を使用している場合は機能しません。アラビア語で同じ偉業を達成するにはどうすればよいでしょうか?
これを試して:-
function HasArabicCharacters(text)
{
var arregex = /[\u0600-\u06FF]/;
alert(arregex.test(text));
}
リストのアラビア文字セット
[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]
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)
内容はウィキペディアから引用 - Unicode のアラビア文字
アラビア語の文字リストを翻訳する機能でそれを行うことができます。非常に簡単です。
など :
function (regexStr) {
regexStr = replace(regexStr,"ۿ","\u0600");
regexStr = replace(regexStr,"","\u06FF");
return regexStr;
}
または、[alf] と [ya] を置き換えて、テキストの方向を正しく表示する別のアイデア
var regexStr = "/[[alf]-[ya]]/";
function (regexStr) {
regexStr = replace(regexStr,"[alf]","\u0600");
regexStr = replace(regexStr,"[ya]","\u06FF");
return regexStr;
}