2

私はこれを私のJavaScriptに持っています、

alert(words.match(\b.(\w*)\b));

ここで、wordsは以前に定義された文字列です。しかし、正規表現 ( \b.(\w*)\b) はコンソール エラーを生成していますUncaught SyntaxError: Unexpected token ILLEGAL。バックスラッシュだと思いますが、何をしても問題は解決しません。Stackoverflow と Google でこの問題を徹底的に調査しましたが、どの結果も機能せず、状況を満たしません。

私が使用している正規表現は次のとおりです: http://regexr.com?36u4v。開催されたものは大歓迎です。

4

2 に答える 2

4

これは、「\b.(\w*)\b RegExpですか?」ということになります。そうですね、でもあなたは通訳者にそのことを伝えていません。JavaScriptのRegExp リテラルではありません。コンストラクターに文字列として渡すか、次で始まり、次で終わるリテラル表記を使用する必要があります。RegExp/

/\b.(\w*)\b/

あなたのエラーに関しては、インタープリターは\最初に到達し、これが何を意味するのか分からないため、トークン ( \) が予期しないものであり、使用した場所が「違法」であることがわかります。


g複数の一致の場合は、「foo」を複数回検索するなど、lobal フラグを設定する必要があります。

/foo/g

この正規表現は、スペースと句読点 (アンダースコアとハイフンを除く) を除くすべての単語を選択するのにうまく機能しますか?

\wはclass の省略形[A-Za-z0-9_]であるため、現時点ではハイフンに一致していません。.また、スペースや句読点を含むほとんどの文字と一致します。*(ゼロ以上) を(1 つ以上) に交換できる+ので、.. したがって、以下はあなたのニーズにより適しているかもしれません

/\b([A-Za-z0-9_-]+)\b/g
于 2013-10-27T01:37:33.097 に答える
1

正規表現リテラルをスラッシュに入れるのを忘れました:

alert(words.match(/\b.(\w*)\b/));
于 2013-10-27T01:38:10.013 に答える