正则表达式如何匹配html元素后的文本

时间:2013-02-13 15:12:52

标签: javascript regex

您好我有这样的代码:

<span class="someclass" style="display:none"></span> Some text

如何仅匹配“一些”字?使用regExp for Javascript 10x

3 个答案:

答案 0 :(得分:1)

您需要将“Some text”放入“div”中,以便引用它

var str=document.getElementById("myText").innerText; 
var patt1=/(Some)/g;
document.write(patt1.test(str));

那将返回true

以下是工作版本:http://jsfiddle.net/4df3w/1/

更改内部文字以查看差异。


编辑:我发现你的字面意思不是“ Some ”。将文本放在div中,并在函数中执行以下操作:

var str = document.getElementById("myText").innerText; 
var match = str.split(" ")[0];
document.write(match);

http://jsfiddle.net/4df3w/3/

答案 1 :(得分:1)

尝试

var myString = '<span class="someclass" style="display:none"></span> Some text';

var regex = /<\/span> (\w+)/ig;

console.log(regex.exec(myString)[1]);

这将输出“&lt; / span&gt;”之后的第一个单词

编辑:

var regex = /<\/\w+> (\w+)/ig;

这将匹配任何结束标记

答案 2 :(得分:0)

使用DOM:

document.getElementsByTagName('span')[0].nextSibling.textContent.split(' ')[0]

(显然,getElementsByTagName('span')[0]可能不是查找节点的最直接途径)

使用正则表达式:

var text = '<span ...>blahblah</span> Some text';
var rx = /<\/(.*?)> ?(\S+)/;
console.log(text.match(rx)[2]);