2016-02-28 85 views
1

有鑑於此:一個元素是否包含指定的字符串(純JS)?

<p>knownString-randomString</p> 

如何找到一個文件中包含「knownString-,」只使用純JavaScript的所有段落?

對於<p>knownString-randomString</p>的每個實例,我需要在連字符(-)處拆分「knownString-randomString」並將「randomString」存儲在變量中以備將來使用。

謝謝。

回答

1
  1. 讓你的元素

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

2. For循環與檢查,並分割你的字符串

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

+1

你應該搜索'knownString-'...'randomString'將是隨機的,所以你可能沒有那個.. – Rayon

+0

改變了代碼:) –

+0

這正是我所需要做的。謝謝你,菲利普! –

0

如果您的段落位於某個其他元素(div或最終的<body>)內,可以選擇帶有jQuery $('divID p')的段落,迭代它們並使用split()將已知和未知字符串放入數組中。 (0)將擁有你的knownString,而ArrayElement(1)將擁有你的randomString。

+0

科比,我想使用純JavaScript解決方案。謝謝。 –

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

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>

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; 
} 
相關問題