0

我正在处理用户脚本,并且正在尝试获取这些粗体标签的内部文本。不幸的是,我不能使用 get getelementbyid 或任何 getelement 函数,因为有更多我不需要的粗体标签,所以我正在尝试正则表达式。我将如何获得 STRING123、STRING456 等?

我试过了(?<=bold\"\>)(.*?)(?=\<\/b\>),但没有运气 bold\"\>(.*)\<\/b\>给我全部的刺痛,但我只想要内部。

<b style="color:#ffffff;text-transform:uppercase;font-size:10pt;font-weight:bold">STRING123</b>
<b style="color:#ffffff;text-transform:uppercase;font-size:10pt;font-weight:bold">STRING456</b>
<b style="color:#ffffff;text-transform:uppercase;font-size:10pt;font-weight:bold">STRING789</b>
<b style="color:#ffffff;text-transform:uppercase;font-size:10pt;font-weight:bold">STRING101112</b>
<b style="color:#ffffff;text-transform:uppercase;font-size:10pt;font-weight:bold">STRING131415</b>
4

3 回答 3

0

你的正则表达式很好。匹配将返回整个字符串,但您只需要$1= 特定匹配的第一组。因此,取决于编程语言,它要么是要么result("$1")等等group(1)

编辑

var myString = "style=color:#ffffff;text-transform:uppercase;font-size:10pt...";
var myRegexp = /bold\"\>(.*)\<\/b\>/g;
var match = myRegexp.exec(myString);
alert(match[1]);
于 2013-03-02T14:13:08.743 回答
0

我会这样尝试

/<b[^>]*bold[^>]*>([^<]*)<\/b>/g
于 2013-03-02T14:13:25.047 回答
0

如果所需b元素的字体粗细使用内联样式定义,如您的示例所示,您可以使用,例如

var i, b,
    bolds = document.getElementsByTagName('b');

for ( i = 0; i < bolds.length; i++ ) {
    b = bolds[i];  

    if ( b.style.fontWeight == 'bold' || b.style.fontWeight == '700' ) {
        console.log( b.innerText || b.textContent ); 
    }        
}
于 2013-03-02T19:44:01.693 回答