找到字符串出现并用跨度包装它
Find the string occurence and wrap it with a span
<div id="wrapper">
<div>if(true)<span class="openParen bm1">{</span></div>
<div>cout<<"hey";cin>>x;</div>
<div><span class="closeParen bm1>}</span></div>
</div>
我想使用正则表达式找到cout
,例如 /cout[^;]*;/
然后用span
包装它。
<div id="wrapper">
<div>if(true)<span class="openParen bm1">{</span></div>
<div><span id="group">cout<<"hey";</span>cin>>x;</div>
<div><span class="closeParen bm1>}</span></div>
</div>
我将如何找到正则表达式实例并用跨度包装它?有人请吗?
更新:我在cout
后插入了cin>>x;
,cin 不应该被包裹。
我想使用这样的东西
text.replace(/(cout[^;]*;)/g, '<span class="group">$1</span>');
但是我不知道如何在DOM中应用它。 有人吗?
对于 cin>> 和 cout<<的 BUG,它们不能被包裹,直到 ; http://jsfiddle.net/3N4AE/11/
以下是使用 jQuery 将正则表达式应用于 DOM 的方式:
$('#wrapper div').filter(':contains("cout")').each(function () {
$(this).html($(this).text().replace(/(cout[^;]*;)/g, '<span class="group">$1</span>'));
});
演示小提琴
更新正则表达式方式演示
$('#wrapper div').filter(':contains("cout")').each(function () {
var x = $(this);
var txt = x.text();
x.html(txt.replace(/(cout[^;]*;)/g, '<span class="group">$1</span>'));
});
演示
var x =$('#wrapper div').filter(':contains("cout")');
var txt = x.text();
x.text('').append('<span id="group">'+txt+'</span>');
OP 更新问题后更新
演示
var x = $('#wrapper div').filter(':contains("cout")');
var txt = x.text();
x.text('');
var cout = txt.split(';');
$.each(cout, function (i, val) {
if (val.indexOf('cout') > -1) {
x.append('<span class="group">' + val + ';</span>');
} else {
x.append(val + ';');
}
});
更新
演示
$('#wrapper div').filter(':contains("cout")').each(function () {
var x = $(this);
var txt = x.text();
x.text('');
var cout = txt.split(';');
$.each(cout, function (i, val) {
if (val.indexOf('cout') > -1) {
x.append('<span class="group">' + val + ';</span>');
} else {
x.append(val + ';');
}
});
});
考拉开发评论后更新
演示
$('#wrapper div').filter(':contains("cout")').each(function () {
var x = $(this);
var txt = x.text();
x.text('');
var cout = txt.split(';');
$.each(cout, function (i, val) {
if (val.indexOf('cout') > -1) {
x.append('<span class="group">' + val + ';</span>');
} else if ($.trim(val) != '') {
x.append(val + ';');
}
});
});
这应该会有所帮助
var pattern = /cout[^;]*;/;
var txt = $('#wrapper').find('div:nth-child(2)').text();
var el = $('#wrapper').find('div:nth-child(2)');
$(el).text("").append('<span id="group">' + txt + '</span');
斯菲德尔
相关文章:
- 用类javascript包装span标记中字符串中的字符索引
- 用Javascript包装HTML字符串中未包装的部分
- 将字符串列表包装在复杂的 HTML 标记中
- Javascript regexp 在 {{}} 之间获取字符串,但不包括那些包装在 中的字符串
- 将拆分字符串的子字符串包装在元素中
- 如何确定搜索字符串是否被较大字符串中的锚标记包装 - javascript 正则表达式
- 提取由某些字符包装的子字符串
- 正则表达式包装的字符串不显示值
- angularjs:在$compile之前用angular.element包装模板字符串
- 检测字符串中的“模式”并将其包装在javascript(angular)中标签
- 比较 IMG SRC + A 包装 URL 字符串,看看它们是否“相似”
- 找到字符串出现并用跨度包装它
- 当通过jQuery插入DOM时,什么时候应该将HTML字符串包装在单个元素中
- 将字符串包装在标记中
- JavaScript:如何用包含唯一id的span标记将字符串中的每个单词包装起来
- 什么是只包装字符串的一部分的包装方法
- 查找字符串并添加HTML或在HTML中包装字符串
- 在DOM插入之前用HTML包装字符串
- 如何用html元素包装字符串的一个区域?
- Regex用HTML标记包装字符串