gpt4 book ai didi

javascript - JS中带有UTF8字符的正则表达式自动换行

转载 作者:行者123 更新时间:2023-11-30 06:06:56 25 4
gpt4 key购买 nike


我已经阅读了这里所有涉及类似问题的文章,但仍然没有找到任何解决方案。在我的例子中,我想用一个跨度来包装字符串的每个单词。这些词包含特殊字符,例如“äüö...”

我现在正在做的是:

var textWrap = text.replace(/\b([a-zA-Z0-9ßÄÖÜäöüÑñÉéÈèÁáÀàÂâŶĈĉĜĝŷÊêÔôÛûŴŵ-]+)\b/g, "<span>$1</span>");

但是,如果 äüñ 或任何非 Ascii 字符位于末尾或开头,它也会像边界一样起作用。在一个词中,这些字符不作为边界。

'Ärmelkanal' becomes Ä<span>rmelkanal</span> but should be <span>Ärmelkanal</span>
'Käse'works fine... becomes <span>Käse</span>
'diré' becomes <span>dir</span>é but should be <span>diré</span>

如有任何建议,我们将不胜感激。我需要在客户端这样做 :-( 顺便说一句,我有没有提到我讨厌正则表达式 ;-)

非常感谢!

最佳答案

问题是 JavaScript 只能识别 ASCII 字母(和数字/下划线)之前/之后的单词边界。只需放下 \b anchor 即可。

result = subject.replace(/[a-zA-Z0-9ßÄÖÜäöüÑñÉéÈèÁáÀàÂâŶĈĉĜĝŷÊêÔôÛûŴŵ-]+/g, "<span>$&</span>");

关于javascript - JS中带有UTF8字符的正则表达式自动换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3787072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com