XRegExpを使用して、文字列が次の基準に従って有効な単語であるかどうかをテストしようとしています。
- 文字列は 1 つ以上の Unicode 文字で始まり、その後に
- アポストロフィ (
'
) の後に 1 つ以上の Unicode 文字が続き、0 回以上繰り返されます。 - 文字列は、一致したパターンの直後で終了します。
つまり、これらの用語に一致します
Hello can't Alah'u'u'v'oo オライリー
しかし、これらではありません
食べるまで食べる
このパターンを試しているのですが、
^(\\p{L})+('(\\p{L})+)*$
ただし、アポストロフィを含む単語には一致しません。私は何を間違っていますか?
編集:正規表現を使用したコード
var separateWords = function(text) {
var word = XRegExp("(\\p{L})+('(\\p{L})+)*$");
var splits = [];
for (var i = 0; i < text.length; i++) {
var item = text[i];
while (i + 1 < text.length && word.test(item + text[i + 1])) {
item += text[i + 1];
i++;
}
splits.push(item);
}
return splits;
};