我正在尝试制作一个与人名匹配的动态正则表达式。它对大多数名称都没有问题,直到我在名称末尾遇到重音字符。
示例:一些花哨的名字
到目前为止我使用的正则表达式是:
/\b(Fancy Namé|Namé)\b/i
像这样使用:
"Goal: Some Fancy Namé. Awesome.".replace(/\b(Fancy Namé|Namé)\b/i, '<a href="#">$1</a>');
这根本不匹配。如果我将 é 替换为 ae,则匹配得很好。如果我尝试匹配诸如“Some Fancy Namea”之类的名称,它就可以正常工作。如果我删除单词最后一个单词边界锚,它工作得很好。
为什么单词边界标志在这里不起作用?关于如何解决这个问题的任何建议?
我考虑过使用这样的东西,但我不确定性能损失会是什么样子:
"Some fancy namé. Allow me to ellaborate.".replace(/([\s.,!?])(fancy namé|namé)([\s.,!?]|$)/g, '$1<a href="#">$2</a>$3')
建议?想法?