私は任意の言語の単語にマッチするが、絵文字やその他の文字では失敗するjavascript正規表現が必要です。ここの解決策:Regular expression to match non-English characters?はすべての文字と絵文字と絵文字([^\u0000-\u007F]+
)に一致します。それを少し変更正規表現のマッチング文字 - 非ラテン(ただし、絵文字は除く)
は私が必要なものを達成するためにそうですが、私はそれがどのように安全ではわからない:([a-zA-Z]|[^\u0000-\u007F\u200d-\u3299\ud83c-\udfff\ufe0e\ufe0f])+
例: America
Österreich
Россия
Ελλάδα
文字だけを一致させる必要がありますし、絵文字の前に停止します。例えば、文字の表現と絵文字と一致してはならない:1️⃣#️⃣*️⃣
関連:コンテキストのhttp://www.unicode.org/Public/emoji/5.0/emoji-variation-sequences.txt
ビット: 私はこのパーサパッチを適用しようとしている。現在、それはとして一致するため、絵文字に分割するhttps://github.com/Khan/simple-markdown/blob/master/simple-markdown.js#L1304をできるだけ多くのテキスト。そのパーサーによる絵文字のマッチング/置き換えがなければ、問題があります。強調表示された正規表現から\u00c0-\uffff
を削除すると、必要な処理が実行されますが、パーサーは単語の分割を開始します。いくつかの言語(キリル文字)は文字ごとに壊れてしまいますが、これはパフォーマンスには不利です。私はどちらかの正規表現をパッチする必要がありますが、emojisではなく、文字を許可するか、それの前にすべてのテキストをキャッチする正規表現を置きます。
編集:追加言語制限
いくつかの例を追加しました – Max