关于clojure:Java的ClojureScript中的Pattern / quote等价物

Java's Pattern/quote equivalent in ClojureScript

当我在Clojure中时,我可以使用(re-pattern (java.util.regex.Pattern/quote foo))来精确地将模式字符串与另一个字符串匹配。我怎样才能在Clojurescript中做类似的事情?

编辑:我也发现了这一点——在JavaScript ReGEXP中复制Java的"模式引用"功能


没有内置的clojure或javascript函数。

此clojure函数应转义字符串中的特殊regexp字符:

1
2
3
4
(defn re-quote [s]
  (let [special (set".?*+^$[]\\(){}|")
        escfn #(if (special %) (str \\ %) %)]
    (apply str (map escfn s))))

http://ideone.com/qxbbb

免责声明:我没有广泛地测试过这一点,所以在使用此代码清除潜在的邪恶字符串之前,您可能需要获得第二个意见。


首先,我应该说我既不使用clojurescript也不使用javascript,但是快速搜索clojurescript regex支持将我带到了这个页面:https://github.com/clojure/clojurescript/wiki/differences-from-clojure,在"其他功能"部分下,它说:"clojurescript正则表达式支持是javascript的",提供了他的链接:http://www.w3schools.com/jsref/jsref_obj_regexp.asp。下一个链接似乎为您提供了您想要的东西(作为一个不使用JavaScript的人,我谨慎地肯定地说)。

编辑哦,也许这里这个老问题的答案是:将用户输入字符串转换为正则表达式将给您一个更完整的答案。