ruby on rails - Bold items in a string based on 1 or more matches -
i have following:
str = "hello world. today wednesday" matchedterms
matchedterms contains data so:
> "world" > "word, is"
what update str so:
"hello <b>world</b>. today <b>is</b> wednesday"
what right way in ruby/rails update string given matchedterms?
thanks
the string#gsub method takes block can make pretty easy (and should more efficient writing iterator/loop).
here's how i'd go this:
matched_terms = ["world", "is"] pattern = regexp.new(matched_terms.join("|"), regexp::ignorecase) str = "hello world. today wednesday" result = str.gsub(pattern) { |match| "<b>#{match}</b>" } # => "hello <b>world</b>. today <b>is</b> wednesday"
i couldn't understand why had "word, is"
1 of matchedterms given example output... simplified "is"
. if wanted "word, is"
considered 2 additional terms match on -- "word"
, "is"
-- i'd clean ahead of time, this:
matched_terms.map! { |mt| mt.split(", ") }.flatten!
Comments
Post a Comment