Vue.component("keyword", { props: ["v-word"], data: function () { let word = this.vWord if (word == null) { word = "" } else { word = word.replace(/\)/, "\\)") word = word.replace(/\(/, "\\(") word = word.replace(/\+/, "\\+") word = word.replace(/\^/, "\\^") word = word.replace(/\$/, "\\$") } let slot = this.$slots["default"][0] let text = this.encodeHTML(slot.text) if (word.length > 0) { text = text.replace(new RegExp("(" + word + ")", "ig"), "$1") } return { word: word, text: text } }, methods: { encodeHTML: function (s) { s = s.replace("&", "&") s = s.replace("<", "<") s = s.replace(">", ">") return s } }, template: `` })