基本的に2文字の単語を見つけるJavaScript正規表現があります。問題は、アクセント付きの文字を単語の境界として解釈することです。確かに、そのようです
単語境界 ("\b") は、片側に "\w" があり、反対側に "\W" がある 2 つの文字の間のスポットです (どちらの順序でも)。 "\W" に一致する文字列の先頭と末尾。 AS3 RegExp は、境界型の文字を含む単語に一致します
それ以来
\w は、アンダースコア ([a-zA-Z0-9_] の略) を含む任意の英数字 (単語文字) と一致します。\W は、単語以外の任意の文字に一致します ([^a-zA-Z0-9_] の略) http://www.javascriptkit.com/javatutors/redev2.shtml
明らかにアクセントのある文字は考慮されません。のような言葉で問題になりますMontréal
。é
が単語境界と見なされる場合、はal
2 文字の単語です。アクセント付き文字を許可する単語境界の独自の定義を作成しようとしましたが、単語境界は文字でさえないため、それを見つける方法が正確にはわかりません..
何か助けはありますか?
以下は、正規表現userInput
を使用して 2 文字の単語を検索して見つける、関連する JavaScript コードです。re_state
var re_state = new RegExp("\\b([a-z]{2})[,]?\\b", "mi");
var match_state = re_state.exec(userInput);
document.getElementById("state").value = (match_state)?match_state[1]:"";