2017-10-13 10 views
1

私はこのコードを持っている:特定の単語を除いた文字列を置き換える方法は?

text.replace(/(?:^|\s)\S/g, c => c.toUpperCase()); 

https://regex101.com/r/vD4aGJ/1

これは、文字列の上にタイトルケースを実装することであり、それはうまく動作します。しかし今、私はタイトルの中からある種の単語を「スキップ」する必要があります。私は、これは単語が提供されたリストにある場合、同様に置き換えるスキップするために、その正規表現を変更するにはどうすればよい

(以下のコードは動作しませんが、それだけで説明するのです):

/(?:^|\s)\S^(of|from)/g 

その方法from the house of cardsと入力すると、現在の出力ではなくの代わりにfrom The House of Cardsが出力されます。

ありがとう!

+0

だろうが、私は推測する、それが推定することができる正規表現:) – eestein

答えて

1

あなたは

\b(?!(?:from|of)\b)[a-z] 

a demo on regex101.comを参照してくださいを使用することができます。
これは、除外する言葉と、除外する単語がリストされている非捕捉グループを使用します。


ので JSコードでは、これはそれは私がコードに使用しているものです

text.replace(/\b(?!(?:from|of)\b)[a-z]/g, c => c.toUpperCase()); 
+0

素晴らしいですので、:)それは完全に働きました!あなたはとても速かった私はまだ答えを受け入れることができません:Dの感謝の男 – eestein

+0

確かにそれは、または少なくともそれでなければなりません! :D – eestein

関連する問題