2012-03-30 20 views
1

我需要下面的表達 或任何其他字符其他檢索71drwec451drdsf3從71drwec3之間「a_secret」></DIV>或類似誰能幫我找到的正則表達式該使用JavaScript

<div class="fs" id="a_secret">71drwec4</div> 

<div class="fs" id="a_secre">51drdsf3</div> 

<div class="fs" id="a_secr">54451drwec3</div> 

PS一句:我需要它在jaavscript。 我將非常感謝那些幫助我的人

+3

你到目前爲止嘗試過什麼嗎? – 2012-03-30 21:31:03

+1

如果你想要正則表達式,你需要一個正則表達式,換句話說,你需要確切地知道表達式應該每次檢查什麼 – SpYk3HH 2012-03-30 21:31:22

+0

@colin:我真的是一週正常表達式......我試過這個 patt1 =/a_secret \ /(\ d +)「/; – 2012-03-30 21:32:37

回答

1

這個怎麼樣:

var pattern = /<div class="fs" id=".*?">(.*?)<\/div>/gm; 
var src = '<div class="fs" id="a_secret">71drwec4</div> \n <div class="fs" id="a_secre">51drdsf3</div> \n <div class="fs" id="a_secr">54451drwec3</div>'; 
var match; 
while (match = pattern.exec(src)) { 
    alert(match[1]); 
} 

更改它,你需要它(我不知道你的身份證是什麼樣子的,或者他們都擁有同一個班級,等等)。如果您希望匹配來自您自己頁面內的元素,那麼jQuery會更容易,正如其他海報所提到的。

而且......強制性參考其他SO後:RegEx match open tags except XHTML self-contained tags

+0

謝謝你...工作完美 – 2012-03-30 22:15:15

1

你必須使用正則表達式嗎?如果要解析的文本是HTML,並且您可以使用jQuery,則可以使用此處的.text()方法來使用ID檢索內容。

E.g.

var whatIwant = $("#a_secret").text(); 

http://api.jquery.com/text/

+0

它可能是由jquert ..但是我需要正則expression.thank你 – 2012-03-30 21:38:24

+4

正則表達式的原因是什麼?你可以給你更多的背景知道你需要什麼要做什麼?也許有一個更簡單的路線 – dougajmcdonald 2012-03-30 21:39:38

+0

因爲我正在檢索另一個頁面源使用http獲取請求..我保存整個頁面源代碼作爲string.and與該字符串我找到特定的值。 – 2012-03-30 21:41:19

0
// Match against your HTML, store matches in new 'matches' Array 
var matches = htmlStr.replace(/<div.*?>(.+?)<\/div>/g, "$1 ").trim().split(' '); 

...這個假設有在值沒有空格你試圖取回,你需要調整它有點如果空間是有效的。但是,對你提供的測試HTML:

<div class="fs" id="a_secret">71drwec4</div> 
<div class="fs" id="a_secre">51drdsf3</div> 
<div class="fs" id="a_secr">54451drwec3</div> 

...這種方法產生:

["71drwec4", "51drdsf3", "54451drwec3"] 

乾杯

+0

但我只需要檢索id =「a_secret ie.71drwec4的內容 – 2012-03-30 21:48:13

+0

已更新的回答。 – Madbreaks 2012-03-30 21:58:23

0

其中一個可能用JavaScript工作。

超限與<名稱>

str = ' 
<div 
    (?=\s) 
    (?= (?:[^>"\']|"[^"]*"|\'[^\']*\')*? (?<=\s) id \s*= 
     (?: (?>    \s* ([\'"]) \s* a_secret \s* \g{-1}) 
     | (?> (?!\s*[\'"]) \s*    a_secret (?=\s|>)) 
    ) 
) 
    (?> \s+ (?:".*?"|\'.*?\'|[^>]*?)+ 
> 
) (?<! />) 

(?<not_71drwec3>(?:(?!71drwec3).)*?) </div\s*> 
'; 

未受保護與<名稱>

str = ' 
<div 
    (?=\s) 
    (?= (?:[^>"\']|"[^"]*"|\'[^\']*\')*? (?<=\s) id \s*= 
     (?:    \s* ([\'"]) \s* a_secret \s* \g{-1} 
     | (?!\s*[\'"]) \s*    a_secret (?=\s|>) 
    ) 
) 
    \s+ (?:".*?"|\'.*?\'|[^>]*?)+ 
> 
    (?<! />)  // line is worthless when unprotected 

(?<not_71drwec3>(?:(?!71drwec3).)*?) </div\s*> 
'; 

未受保護的無<名稱>而不\克{}記號保護

str = ' 
<div 
    (?=\s) 
    (?= (?:[^>"\']|"[^"]*"|\'[^\']*\')*? (?<=\s) id \s*= 
     (?:    \s* ([\'"]) \s* a_secret \s* \1 // Group 1 
     | (?!\s*[\'"]) \s*    a_secret (?=\s|>) 
    ) 
) 
    \s+ (?:".*?"|\'.*?\'|[^>]*?)+ 
> 
    (?<! />)  // line is worthless when unprotected 

((?:(?!71drwec3).)*?) </div\s*>       // Group 2 
';