gpt4 book ai didi

javascript - 用空格拆分字符串(包含标签)而不破坏 Javascript 中的标签或标签内部 html

转载 作者:行者123 更新时间:2023-11-30 07:45:26 24 4
gpt4 key购买 nike

我试图将一个字符串按空格拆分成一个单词数组。如果字符串包含 HTML 标签,我希望将完整标签(包括内容)视为单个词。

例如,

I like to eat <a href="http://www.waffles.com/">tasty delicious waffles</a> for breakfast

应该分成

I
like
to
eat
<a href="http://www.waffles.com/">tasty delicious waffles</a>
for
breakfast

我在 Stack Overflow 上看到了几个相关的线程,但我在将任何内容改编为 Javascript 时遇到了麻烦,因为它们是为我不太熟悉的语言编写的。是否有可以轻松执行此操作的正则表达式,或者解决方案是否需要多个正则表达式拆分和迭代?

谢谢。

最佳答案

result = subject.match(/<\s*(\w+\b)(?:(?!<\s*\/\s*\1\b)[\s\S])*<\s*\/\s*\1\s*>|\S+/g);

如果您的标签不能嵌套,如果所有标签都正确关闭,并且如果当前标签名称没有出现在注释、字符串等中,则将起作用。

解释:

<\s*            # Either match a < (+ optional whitespace)
(\w+\b) # tag name
(?: # Then match...
(?! # (as long as it's impossible to match...
<\s*\/\s*\1\b # the closing tag here
) # End of negative lookahead)
[\s\S] # ...any character
)* # zero or more times.
<\s*\/\s*\1\s*> # Then match the closing tag.
| # OR:
\S+ # Match a run of non-whitespace characters.

关于javascript - 用空格拆分字符串(包含标签)而不破坏 Javascript 中的标签或标签内部 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7551974/

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