元素是否包含指定的字符串(纯JS)?

时间:2016-02-28 01:07:56

标签: javascript string

鉴于此:

<p>knownString-randomString</p>

如何仅使用纯JavaScript查找文档中包含“knownString-”的所有段落?

对于<p>knownString-randomString</p>的每个实例,我需要在连字符(-)处拆分“knownString-randomString”并将“randomString”存储在变量中供以后使用。

感谢。

5 个答案:

答案 0 :(得分:1)

  1. 获取您的元素

    var paragraphs = document.getElementsByTagName('p');

  2. 2.对于循环检查并拆分你的字符串

    for(var i = 0; i < paragraphs.length; i++){
       if(paragraphs[i].innerHTML.search('knownString') > -1){
           randomString = paragraphs[i].innerHTML.split('-')[1];
       }
    }
    

    for(var i = 0; i < paragraphs.length; i++){ if(paragraphs[i].innerHTML.search('knownString') > -1){ randomString = paragraphs[i].innerHTML.split('-')[1]; } }

答案 1 :(得分:1)

这是一种方式:

function FindRandomStrings()
{
    var allParagraphs = document.getElementsByTagName("p");
    var regex = /knownString-(.*)/;
    var result = [];
    var match;
    var i;

    for (i = 0; i < allParagraphs.length; i++)
    {
        match = regex.exec(allParagraphs[i].innerHTML);

        if (match)
        {
            result.push(match[1]);
        }
    }

    return result;
}

答案 2 :(得分:0)

如果你的段落在某个其他元素中,或者是div,或者最终是<body>,你可以选择那些带有jQuery $('divID p')的元素,遍历它们,并使用split()来分隔已知和未知的字符串到数组中。

var ArrayElement = split("knownString-randomString");

ArrayElement(0)将具有您的knownString,而ArrayElement(1)将具有您的randomString。

答案 3 :(得分:0)

var randomStrings = [];
var ps = document.querySelectorAll('p');
for(var i = 0; i < ps.length; i++) {
    if(ps[i].textContent.startsWith('knownString')) {
        randomStrings.push(ps[i].textContent.split('-')[1]);
    }
}

您需要的变量将存储在randomStrings

答案 4 :(得分:0)

  • 将所需的字符串转换为正则表达式。
  • 检索所有段落(根据需要使用querySelectorAll选择器修改)。
  • 遍历所有段落。
  • 对于每个段落,获取文本并使用正则表达式进行搜索。
  • 如果匹配,请将其添加到“点击”的累积列表中。

var knownString = "knownString";
var regex = new RegExp(knownString + "\\-(.*)");
var pars = document.querySelectorAll("p");
var results = [];
[].forEach.call(pars, function(par) {
  var x = par.firstChild.nodeValue.match(regex);
  if (x) results.push(x[1]);
});
alert(results);
<p>something else</p>
<p>knownString-randomString1</p>
<p>knownString-randomString2</p>