Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS中带有UTF8字符的正则表达式wordwrap_Javascript_Regex_Utf 8 - Fatal编程技术网

Javascript JS中带有UTF8字符的正则表达式wordwrap

Javascript JS中带有UTF8字符的正则表达式wordwrap,javascript,regex,utf-8,Javascript,Regex,Utf 8,我已经阅读了这里所有涉及类似问题的文章,但仍然没有找到有效的解决方案。在我的例子中,我想把字符串中的每个单词都用一个空格括起来。这些单词包含特殊字符,如“äüö…” 我目前正在做的是: var textWrap = text.replace(/\b([a-zA-Z0-9ßÄÖÜäöüÑñÉéÈèÁáÀàÂâŶĈĉĜĝŷÊêÔôÛûŴŵ-]+)\b/g, "<span>$1</span>"); var textWrap=text.replace(/\b([a-zA-Z0-


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

我目前正在做的是:

var textWrap = text.replace(/\b([a-zA-Z0-9ßÄÖÜäöüÑñÉéÈèÁáÀàÂâŶĈĉĜĝŷÊêÔôÛûŴŵ-]+)\b/g, "<span>$1</span>");
var textWrap=text.replace(/\b([a-zA-Z0-9ßÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
但是,如果äüñ或任何非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>
“rmelkanal”变为“rmelkanal”,但应为“rmelkanal”
“Käse”很好用。。。变成卡塞
“diré”变成diré,但应该是diré
任何建议都将不胜感激。我需要在客户端这样做:-(顺便说一句,我说过我讨厌正则表达式;-)


多谢各位

问题在于JavaScript只识别ASCII字母(和数字/下划线)前后的单词边界。只要放下
\b
锚,它就会工作

result = subject.replace(/[a-zA-Z0-9ßÄÖÜäöüÑñÉéÈèÁáÀàÂâŶĈĉĜĝŷÊêÔôÛûŴŵ-]+/g, "<span>$&</span>");
result=subject.replace(/[a-zA-Z0-9ßÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ219;
看起来糟透了;-)但是它很有效,非常感谢!!!你的解决方案很聪明。谢谢你的解释!!!