Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 regex插入html标记而不创建无效的html_Javascript_Regex_Text - Fatal编程技术网

Javascript regex插入html标记而不创建无效的html

Javascript regex插入html标记而不创建无效的html,javascript,regex,text,Javascript,Regex,Text,我有一些javascript,它根据用户的选择查看文本字符串,并将字符串包装在标记中。我要找的是一个正则表达式,它可以查看文本字符串并检查字符串中现有的html标记,如果它们存在,则分解跨度,这样就不会使html无效 例如,假设我有以下文本 <p>Lorem ipsum dolor sit amet, <i>consectetur adipiscing elit</i>. Curabitur tortor risus, facilisis vitae bib

我有一些javascript,它根据用户的选择查看文本字符串,并将字符串包装在标记中。我要找的是一个正则表达式,它可以查看文本字符串并检查字符串中现有的html标记,如果它们存在,则分解跨度,这样就不会使html无效

例如,假设我有以下文本

<p>Lorem ipsum dolor sit amet, <i>consectetur adipiscing elit</i>. Curabitur tortor risus, facilisis vitae bibendum sit amet, mattis non dui.</p> Lorem ipsum dolor sit amet,是一位杰出的献身者。 托尔托尔·里索斯(Curabitur tortor risus)酒后驾车,无酒后驾车


用户选择“amet,CONCENTETUR”。字符串应以“amet,concertetur”结尾,而不是tp“amet,concertetur”

不应使用正则表达式解析HTML。请参阅:

使用正则表达式来完成这项工作将很困难。通常正则表达式对于HTML解析来说是个坏主意。示例:我怀疑如果关闭标记出现在选择中,您是否只想创建一个跨度块?在这种情况下,语义将进入流程,正则表达式将不适合。看看HTML解析器。请再详细说明一点(不要引用Bobince现在著名的长篇大论)。我希望避免使用正则表达式来解决这个问题。什么是更好的方法?+1用于提醒用户将正则表达式与HTML一起使用时出现的问题。然而,请注意,您提到的问题也有一个答案,表明在某些有限的情况下,使用正则表达式解析HTML是合理的。毫无疑问,您不能使用正则表达式来解析HTML的结构。但是您可以使用正则表达式来确定什么是标记,什么是文本。这是一个完全不同的问题。我认为在这种情况下,海报的问题实际上可以用正则表达式来处理。(虽然可能有更好的方法来解决这个问题。)好吧,前面提到的主题中已经有了利弊,所以我不再重复了。是的,在某些情况下,使用正则表达式解析html是有意义的(但仍然不推荐)。我建议看一看HTMLDOM解析器,对于这个任务来说,它看起来更自然。