Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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/3/html/82.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 在任意HTML结构中使用正则表达式包装未包装的textNode_Javascript_Html_Regex - Fatal编程技术网

Javascript 在任意HTML结构中使用正则表达式包装未包装的textNode

Javascript 在任意HTML结构中使用正则表达式包装未包装的textNode,javascript,html,regex,Javascript,Html,Regex,我有一些带有HTML的页面,如下所示: 一些头衔 知识是一种美德,是一种美德,是一种美德,是一种美德。 知识是一种美德,是一种美德,是一种美德,是一种美德 现在,我还需要将第一个Lorem ipsum文本包装在标记中。有没有一种方法可以检测到这一点并使用regex执行? 我将使用正则表达式直接在数据库中进行这些更改。我使用正则表达式搜索,当找到字符串时,创建一个classcol-md-12的子元素,并删除另一个没有元素的字符串 <html> <body>

我有一些带有HTML的页面,如下所示:


一些头衔
知识是一种美德,是一种美德,是一种美德,是一种美德。
知识是一种美德,是一种美德,是一种美德,是一种美德

现在,我还需要将第一个Lorem ipsum文本包装在

标记中。有没有一种方法可以检测到这一点并使用regex执行?

我将使用正则表达式直接在数据库中进行这些更改。

我使用正则表达式搜索,当找到字符串时,创建一个class
col-md-12
的子元素,并删除另一个没有元素的字符串

<html>
    <body>
        <div class="row">
            <div class="col-md-12">
                <h2>Some Title</h2>
                Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
            </div>
        </div>
    </body>
    <script>

        var string = document.getElementsByTagName('html')[0].innerHTML;

        var regex = /Lorem ipsum[a-zA-Z0-9_ _,_.]*/g;

        var save = regex.exec(string)[0];
        document.getElementsByTagName('html')[0].innerHTML = document.getElementsByTagName('html')[0].innerHTML.replace(save, "");
        var first = document.createElement("p");
        var text = document.createTextNode(save);
        first.appendChild(text);

        document.getElementsByClassName("col-md-12")[0].appendChild(first);

    </script>
</html>

一些头衔
知识是一种美德,是一种美德,是一种美德,是一种美德。
var string=document.getElementsByTagName('html')[0].innerHTML;
var regex=/Lorem ipsum[a-zA-Z0-9_uuu,uu.]*/g;
var save=regex.exec(字符串)[0];
document.getElementsByTagName('html')[0]。innerHTML=document.getElementsByTagName('html')[0]。innerHTML.replace(保存“”);
var first=document.createElement(“p”);
var text=document.createTextNode(保存);
第一,追加子项(文本);
document.getElementsByClassName(“col-md-12”)[0]。appendChild(第一个);

由于您的结构是固定的,所以这只是一个时间问题

  • 查找第一个非空的
    TextNode
  • 创建
    p
    元素
  • 用父节点内的段落替换文本节点
  • 我把段落改成绿色,这样你就可以看到效果了。只需单击“包装”按钮即可看到它的实际操作

    函数换行(){
    让div=document.querySelector('div.row>div.col-md-12');//获取容器
    for(设i=0;i
    p{
    背景颜色:绿色;
    }
    
    一些头衔
    知识是一种美德,是一种美德,是一种美德,是一种美德。
    知识是一种美德,是一种美德,是一种美德,是一种美德


    用javascript包装
    ,这是可能的。你不能用正则表达式选择从
    到第一个
    之间的所有内容吗?你在这里用什么语言?这是在服务器中发生的吗?您可能最好使用解析器。它只是一个
    TextNode
    节点,位于所有这些元素的根目录下。@vsync我不能这样做,因为上面只是一个例子,标签在整个页面中一直在变化。那么你为什么不在帖子中明确分享你在上一条评论中透露的这一有益信息呢?我现在就试试看,谢谢你的努力。我会让你知道事情的进展。