2017-05-29 6 views
0

JavaScript文字列が事前定義された単語の部分文字列でない限り、文字列と一致させようとしています。Regexは特定の単語の部分文字列であれば一致を無視します

など。ファイル内にこれらの単語があるとしましょう。たとえ一致するものがあったとしても、という青色のという単語が検索結果に表示されないようにしましょう。

value 
lunar 
blue 
clue 

LUためのユーザー検索のであれば、青以外のすべての単語が表示されるはずです。ユーザーがueを検索する場合は、値と手がかりのみを一致させる必要があります。

私はこのような先を否定的にしてみました。

((?!blue)lu) 

どうしたらいいのか分からない。

+0

正しいと分かっていれば、「ヒント」は結果に表示され、「青」には表示されません。私は正しい? – Rajesh

+2

単語の境界を使用する必要があります: '\ blu \ b' – revo

+0

明確化の要求、*私は単語を青色にしたくありません... *なぜ単語だけ*青*? – revo

答えて

4

負のルックアヘッドと検索文字列の間に0以上の単語文字が一致するように、\w*を配置する必要があります。検索文字列としてue

/\b(?!blue)\w*lu\w*/ 

:検索文字列としてlu

var kw = "lu"; or "ue" 
var re = new RegExp("\\b(?!blue)\\w*" + kw + "\\w*"); 

/\b(?!blue)\w*ue\w*/ 

RegEx Demo

実際のJavaScriptコードは、このことができます

+1

@ user3163192:これはあなたのために機能しましたか? – anubhava

+1

このユーザーは、質問をし、回答を受け入れることを嫌う厄介な歴史を持っています。 –

+0

ああ、それは良くありませんし、確かにstackoverflowで動作する方法ではありません – anubhava

関連する問題