如何在javascript中查找字符串中子字符串的出现次数?

时间:2014-01-02 11:48:55

标签: javascript

我在javascript中有以下代码。

    var contents = '<p>this is some text.<span class="Am"></span>This is som text<span class="Am"></span>This is some text<span class="Am"></span></p>';

现在我必须找到此字符串中span标记的出现次数,然后使用一个循环throgh这个数字。例如

 function doStuff(){
        var contents = '<p>this is some text.<span class="Am"></span>This is som text<span class="Am"></span>This is some text<span class="Am"></span></p>';
        var spans = 'Number of spans in the string';  // this is required to me
        for(i=1;i<=spans;i++){
            // do some stuff
            }
       }

有谁能告诉我如何用javascript完成它?

提前致谢。

4 个答案:

答案 0 :(得分:3)

一种方式:

var temp = document.createElement("DIV");
temp.innerHTML = contents;

var count = temp.getElementsByTagName("SPAN").length;

答案 1 :(得分:2)

尝试这个,它相当硬的代码,但有效:

contents.split("</span>").length - 1

你也可以试试这个:

contents.match(/<span/ig).length

答案 2 :(得分:1)

大坝,人们很快回答:)......

这是一种可重复使用的混合方式

    /* function stringmatchCount(str,instr) {
       var count = instr.match(/str/g);
       return count.length;
     } */ 

*更新为ROKO更好地展示

  function stringmatchCount(str,dlm) {
       var d = new RegExp(dlm, "g");
        return str.match(d).length;
     }

用法,就像你的例子一样。

 function doStuff(){
   var contents = '<p><span class="Am"></span>doo, daaa<span></span>';
   var spans = stringmatchCount(contents,'<span');
    for (var i = 0, len=spans; i < len; ++i) {
     ... 
     }
  }

答案 3 :(得分:0)

试试这段代码: -

contents.match(/\<span\>//g).length