我在javascript / jquery和 我有这个STRING: (请注意,这是一个包含Html的STRING,所以我不能只做$('。myClass')。无论如何:))
“
<div class="myClass"> asd class 2 a a a a a a </div> class
<div class="myClass"> class asd df </div>
<div class="myClass"> class </div>
<div class="myClass"> class sdf class aa </div>
<div class="myClass">class sdf class aa </div>
“
我想创建一个只匹配某个单词而不是html标签中的正则表达式。 例如,如果我的单词是“class”,我想匹配这个: ([]附件是匹配的) “
<div class="myClass"> asd [class] 2 a a a a a a </div> class
<div class="myClass"> [class] asd df </div>
<div class="myClass"> [class] </div>
<div class="myClass"> [class] sdf [class] aa </div>
<div class="myClass">[class] sdf [class] aa </div>
” 而不是这个: ([]附件是匹配的) “
<div [class]="myClass"> asd [class] 2 a a a a a a </div> class
<div [class]="myClass"> [class] asd df </div>
<div [class]="myClass"> [class] </div>
<div [class]="myClass"> [class] sdf [class] aa </div>
<div [class]="myClass">[class] sdf [class] aa </div>
” 有人可以帮帮我吗? :)
答案 0 :(得分:0)
我认为这就是您所需要的:
$html = <<< EOF
<div [class]="myClass"> asd [class] 2 a a a a a a </div> class
<div [class]="myClass"> [class] asd df </div>
<div [class]="myClass"> [class2] </div>
<div [class]="myClass"> [class2] sdf [class] aa </div>
<div [class]="myClass">[class] sdf [class] aa </div>
EOF;
preg_match_all('/(\[class\]|\[class2\])(?=[^>]*(<|$))/i', $html, $result, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($result[1]); $i++) {
echo $result[1][$i];
}
<强>输出:强>
[class][class][class2][class2][class][class][class]
如果你只需要一个javascript正则表达式,你可以使用:
var myregexp = /(\[class\]|\[class2\])(?=[^>]*(<|$))/ig;
var match = myregexp.exec(subject);
while (match != null) {
// matched text: match[0]
// match start: match.index
// capturing group n: match[n]
match = myregexp.exec(subject);
}
答案 1 :(得分:0)
你可以试试这个:
$(document).ready(function() {
$(".myClass").text(function () {
return $(this).text().replace("class", "[class]");
});
});
请参阅jsfiddle:http://jsfiddle.net/LPC6n/