Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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 替换textarea中的正则表达式字符串html标记_Javascript_Jquery_Regex_String_Textarea - Fatal编程技术网

Javascript 替换textarea中的正则表达式字符串html标记

Javascript 替换textarea中的正则表达式字符串html标记,javascript,jquery,regex,string,textarea,Javascript,Jquery,Regex,String,Textarea,Hai所有我如何替换textarea值中的正则表达式字符串html标记 具有全局属性的html 示例textarea值 文本 或 文本 Lorem ipsum door sit ametLorem ipsum door sit ametLorem ipsum doorLorem ipsum door sit amet 代替 试试: (]*>).*? Js示例: ( // Start capture group number 1 < // M

Hai所有我如何替换textarea值中的正则表达式字符串html标记 具有全局属性的html 示例textarea值

文本

文本


Lorem ipsum door sit amet

Lorem ipsum door sit amet

Lorem ipsum door











Lorem ipsum door sit amet

代替

试试:
(]*>).*?

Js示例:

(            // Start capture group number 1
<            // Match literal opening < of tag
(            // Start capture group number 2
[a-zA-Z]\w*\s  // Match alpha char followed by 0 or more alphanumeric, followed by a space chars (i.e. HTML tag)
)            // End capture group 2
[^>]*        // Match ANYTHING that is not a literal '>' (i.e. rest of opening tag
>            // Match literal closing > of tag
)            // End capture group 1
.*?          // Match ANYTHING until...
<\/\2>       // Match closing tag using backreference to the opening tag from capture group 2
str.replace(/(]*>).*?/g,“$1替换”)
分解如下:

// Will work
<p>foo</p> => <p>REPLACEMENT</p>
<div class="asdfa">aslkdgladshg</div> => <div class="asdfa">REPLACEMENT</div>
<div class="asfs"><p>asdgaga</p></div> => <div class="asfs">REPLACEMENT</div>

// Won't work (note nested div)
<div class="asdgfasd"><div>asd kbgasdbk</div></div> => <div class="asdgfasd">REPLACEMENT</div>
(//启动捕获组编号1
]*//匹配任何不是文字'>'的内容(即开始标记的其余部分
>//标记的匹配文字结束>
)//结束捕获组1
*?//匹配任何内容,直到。。。
//使用对捕获组2的开始标记的反向引用来匹配结束标记
因此,当成功匹配时,我们有两个填充的捕获组:

1:匹配整个开场标签,包括内容

2:仅匹配标签本身

因此,我们的替换模式可以是:
$1REPLACEMENT

注意:如果在具有相同类型的嵌套标记的HTML上使用,则会出现这种情况。众所周知,使用regexp解析HTML非常困难,理想情况下,您可以使用HTML解析器,但对于小型用例,这是可以接受的

//会有用的
foo

=>更换

aslkdgladshg=>更换 asdgaga的更换 //不起作用(注意嵌套的div) asd kbgasdbk=>更换
我想您正在寻找
.replace(/(]*>)(.*)/g,“\1\n\2\3\n”)
。您只需要捕获开始标记及其类。

能否给出所需输出的示例?相关:此

文本的示例

=

\n

\n
(            // Start capture group number 1
<            // Match literal opening < of tag
(            // Start capture group number 2
[a-zA-Z]\w*\s  // Match alpha char followed by 0 or more alphanumeric, followed by a space chars (i.e. HTML tag)
)            // End capture group 2
[^>]*        // Match ANYTHING that is not a literal '>' (i.e. rest of opening tag
>            // Match literal closing > of tag
)            // End capture group 1
.*?          // Match ANYTHING until...
<\/\2>       // Match closing tag using backreference to the opening tag from capture group 2
// Will work
<p>foo</p> => <p>REPLACEMENT</p>
<div class="asdfa">aslkdgladshg</div> => <div class="asdfa">REPLACEMENT</div>
<div class="asfs"><p>asdgaga</p></div> => <div class="asfs">REPLACEMENT</div>

// Won't work (note nested div)
<div class="asdgfasd"><div>asd kbgasdbk</div></div> => <div class="asdgfasd">REPLACEMENT</div>