我需要编写一个基于排除字符匹配单词的JS RegExp:[', ", -, _ ]
所以粗体字词只能与我的例子匹配:
米兰一些词,米兰再次。米兰一词 - 再次:米兰,米兰 - 米兰。米兰词米兰就是这个词。米兰 mialn。米兰的米兰,米兰米兰_米兰。
注意:我不想在单词 milan 之前/之后包含空格,圆点,逗号,因此我需要获得与上面加粗的结果相同的结果。
我需要它像以下一样工作: 的 \ bmilan \ B'/强> 但我需要排除一组字符,因此它与 milan-milan 和 milan 等示例完全不匹配。
我试图让它发挥作用:https://regex101.com/r/FGeNlQ/1但它并不完整。在这个例子中,空格,点等等都包含在匹配的单词中,我不希望这样。
很抱歉,如果这可能重复,但我找不到正确答案
修改:
代码用法:
window.wrapText = (sentence, word, description) ->
regex = "(?:[^\"'`_-]|^)\\b(" + word + ")\\b(?![\"'`_-])"
re = new RegExp(regex, 'gi')
span = document.createElement('span')
span.innerHTML = sentence
Array.from span.childNodes, (node) =>
if node.nodeType == 3
node.nodeValue.split(re).forEach (part, i) ->
add = undefined
if i % 2
add = document.createElement('span')
add.textContent = part
add.setAttribute('class', 'glossary_text')
else
add = document.createTextNode(part)
span.insertBefore add, node
span.removeChild node
span.innerHTML
注意:我可能没有很好地逃脱'正则表达式'变量