gpt4 book ai didi

javascript - 将规则应用于文本但不在 div 或元素内

转载 作者:行者123 更新时间:2023-11-28 00:11:12 26 4
gpt4 key购买 nike

所以我基本上想在文本区域的包含 html 中操作一个特定标签(仅使用 javascript)而不触及其余部分,例如:

<textarea>    
some stuff here
random new line

<i>this can be treated as
per other text and manipulated</i>

<b>
BUT something
in bold
should be ignored / overlooked</b>

and some
other stuff,
right here

</textarea>

假设我想替换所有新行 \n在这个文本区域(带有 <br/> ),但想忽略 <b> 中的文本(只有 <b> 标签,而不仅仅是任何 HTML 标签),我该如何处理?

我在想某种正则表达式可以工作,但不确定如何将规则放在一起......虽然通过正则表达式解析 html 并不理想 - 如果它工作那么它解决了我的问题。我还想到了 .text() 之间的某种 jquery 杂耍。和 .html()可以和一些人一起工作 :not().filter()也许吧,但我真的不知道从哪里开始......

非常感谢

最佳答案

我并不是说这是正确的或最好的方法,但这里有一个正则表达式可以满足您的要求。

以下将替换任何 \n<br/>前提是向前看字符串 a </b>没有出现在 <b> 之前- 这将防止在 <b></b> 内进行任何替换.

text = text.replace( /\n(?!((?!<b>)[\s\S])*<\/b>)/g , '<br/>' );

例子

$('textarea').val( function ( index, old ) {
return old.replace( /\n(?!((?!<b>)[\s\S])*<\/b>)/g , '<br/>' );
});

关于javascript - 将规则应用于文本但不在 div 或元素内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15133937/

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