2012-08-15 52 views

回答

-1

我应该说第一关,我既不使用ClojureScript和JavaScript,但ClojureScript正则表达式支持快速搜索把我带到这个页面:https://github.com/clojure/clojurescript/wiki/Differences-from-Clojure,其中根据“其他函数“部分,它说:”ClojureScript正则表达式支持是JavaScript的“,提供此链接:http://www.w3schools.com/jsref/jsref_obj_regexp.asp。下一个链接似乎为你提供了你想要的东西(作为一个不使用JavaScript的人,我很谨慎地说)。

编辑
哦,也许答案在这里这个老问题:Converting user input string to regular expression会给你一个更完整的答案。

2

这里没有内置的Clojure或Javascript函数。

这Clojure的函数应该在一个字符串转义特殊字符的正则表达式:

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

http://ideone.com/QXbbB

免责声明:我没有广泛测试此所以你可能要使用此之前得到第二意见代码来消毒潜在的恶意字符串。

+0

其实'Pattern/quote'用'\ Q'和'\ E'包围表达式。 – 2015-04-13 19:49:07