有人可以帮我找到使用javascript的正则表达式

时间:2012-03-30 21:28:39

标签: javascript regex

我需要从下面的表达式中检索71drwec451drdsf371drwec3"a_secret">之间的</div>以外的任何其他字符或类似的字符:

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

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

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

4 个答案:

答案 0 :(得分:1)

你必须使用正则表达式吗?如果要解析的文本是HTML,并且您可以使用jQuery,则可以使用此处的.text()方法从ID中检索内容。

E.g。

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

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

答案 1 :(得分: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]);
}

根据需要更改它(我不知道你的id会是什么样子,或者它们是否都有相同的类等)。如果你想要匹配你自己页面内的元素,jQuery会像其他海报提到的那样容易。

并且......强制引用其他SO帖子:RegEx match open tags except XHTML self-contained tags

答案 2 :(得分: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"]

干杯

答案 3 :(得分:0)

其中一个可能适用于javascript。

以&lt; name&gt;保护的超限保护

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

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

不受&lt; name&gt;

保护
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*>
';

不受保护的否&lt; name&gt;没有\ g {}符号

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
';