Clojure を使用(re-pattern (java.util.regex.Pattern/quote foo))
しているときは、パターン文字列を別の文字列と正確に一致させるために使用できます。ClojureScript で同様のことを行うにはどうすればよいですか?
編集:私もこれを見つけました - JavaScript RegExpでJavaの「Pattern.quote」の機能を複製する
Clojure を使用(re-pattern (java.util.regex.Pattern/quote foo))
しているときは、パターン文字列を別の文字列と正確に一致させるために使用できます。ClojureScript で同様のことを行うにはどうすればよいですか?
編集:私もこれを見つけました - JavaScript RegExpでJavaの「Pattern.quote」の機能を複製する
このための組み込みの Clojure または Javascript 関数はありません。
この clojure 関数は、文字列内の特殊な正規表現文字をエスケープする必要があります。
(defn re-quote [s]
(let [special (set ".?*+^$[]\\(){}|")
escfn #(if (special %) (str \\ %) %)]
(apply str (map escfn s))))
免責事項: 私はこれを広範囲にテストしていないので、このコードを使用して悪意のある可能性のある文字列をサニタイズする前に、セカンド オピニオンを取得することをお勧めします。
まず最初に、私は ClojureScript も Javascript も使用していないと言わなければなりませんが、ClojureScript の正規表現サポートを簡単に検索すると、https ://github.com/clojure/clojurescript/wiki/Differences-from-Clojure というページにたどり着きました。 「その他の機能」セクションには、「ClojureScript 正規表現サポートは JavaScript のものです」とあり、次のリンクを提供しています: http://www.w3schools.com/jsref/jsref_obj_regexp.asp。その次のリンクは、あなたが探しているものを提供しているようです (JavaScript を使用しない人として、私は慎重に断言します)。
編集
おお、そしておそらくこの古い質問への答えはここにあります:ユーザー入力文字列を正規表現に変換すると、より完全な答えが得られます。