如何使用带有html标记和空格的split()函数

时间:2014-08-23 13:37:11

标签: javascript html string split whitespace

我将split(" ")用于空格,并将split(/(<[^>]*>)/)用于字符串中的html标记。

但我必须一起使用。我想用空格和html标签划分一个字符串并将其放入一个数组中。我不想失去任何东西。 string,html标记。

空格为\s,html标记为split(/(<[^>]*>)/),我使用new RegExp("\s+(<[^>]*>)", "g");

但它不起作用。

var htmlTagRegex = new RegExp("\s+(<[^>]*>)", "g");     

    var str = ""<div class="tab0">CSS code formatter</div><div class="tab2">CSS code compressor</div>";
    var myArray = str.split(htmlTagRegex);

    if(myArray != null){
        for ( i = 0; i < myArray.length; i++ ) { 
            var result = "myArray[" + i + "] = " + myArray[i]+"<br />";
            $(".tt-sns-clear").append(result);
        }           
    }   

2 个答案:

答案 0 :(得分:1)

不是100%确定您要执行的操作,但看起来空间需要是可选的,例如\s*而不是\s+

类似于:\s*(<[^>]*>)

因为你没有将字符串连接到正则表达式更好的是:

var htmlTagRegex =/\s*(<[^>]*>)/g

输入字符串没有正确使用双引号,也没有编译,你需要混合单引号和双引号:

 '<div class="tab0">CSS code formatter</div><div class="tab2">CSS code compressor</div>';

一起看起来像

    var htmlTagRegex =/\s*(<[^>]*>)/g     

    var str = '<div class="tab0">CSS code formatter</div><div class="tab2">CSS code compressor</div>';
    var myArray = str.split(htmlTagRegex);

//outputs ["", "<div class="tab0">", "CSS code formatter", "</div>", "", "<div class="tab2">", "CSS code compressor", "</div>", ""]

它似乎在我的最终工作正常。

答案 1 :(得分:0)

字符串来自mysql。这包括html标签。

我这样使用:var htmlTagRegex = / \ s |(&lt; [^&gt;] *&gt;)/ g;

但结果不是我想要的。

["","CSS","code","formatter","<div class="tab0"></div>","","CSS","code","compressor","<div class="tab1"></div>"]

我想要这样

["<div class="tab0">","CSS","code","formatter","","<div class="tab1">","CSS","code","compressor","</div>"]