The clojure.string
namespace contains a lot of useful functions to work with string values. The escape
function can be used to replace characters in a string with another character. The function accepts as first argument the string value and the second argument is a map. The map has characters as key that need to be replaced followed by the value it is replaced with. For example the map {\a 1 \b 2}
replaces the character a
with 1
and the character b
with 2
.
In the following example code we use the escape
function in several cases:
(ns mrhaki.string.escape-string (:require [clojure.string :as str] [clojure.test :refer [is]])) (is (= "I 10v3 C10jur3" (str/escape "I love Clojure" {\o 0 \e 3 \l 1}))) (is (= "mrHAKI" (str/escape "mrhaki" {\h "H" \a "A" \k "K" \i "I" \x "X"}))) (def html-escaping {(char 60) "<" (char 62) ">" (char 38) "&"}) (is (= "<h1>Clojure & Groovy rocks!</h1>" (str/escape "<h1>Clojure & Groovy rocks!</h1>" html-escaping))) (is (= "Special chars: \\t \\n" (str/escape "Special chars: \t \n" char-escape-string)))
Written with Clojure 1.10.1.