在JavaScript中去掉与模式匹配的值前后的文本
Strip off text before and after a value that matches a pattern in JavaScript
下面这段JavaScript jQuery代码为数组中的每个值显示了如下内容:
<span class="label">oranges</span>
其中橙子是每项中不同的值。
我需要把所有的东西都去掉,这样我在一个变量中只有oranges
部分?
var taskAssignedUserDataArray = [
'<span class="label">oranges 1</span>',
'<span class="label">oranges 2</span>',
'<span class="label">oranges 3</span>',
'<span class="label">oranges 4</span>'];
var value = taskAssignedUserDataArray;
$.each(value,function(i){
alert(value[i]);
value[i] = $('<p>' + value[i] + '</p>').text()
});
这里,见下文
var taskAssignedUserDataArray = [
'<span class="label">oranges 1</span>',
'<span class="label">oranges 2</span>',
'<span class="label">oranges 3</span>',
'<span class="label">oranges 4</span>'];
var value = taskAssignedUserDataArray;
$.each(value,function(i){
alert(value[i].replace(/(<.*>)(.*)(<.*>)/i, '$2'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
结果为
橙子1
橙子2
橘子3
橙子4
您应该使用正则表达式和replace方法从变量中删除HTML标签。
var newval = value[i].replace(/(<([^>]+)>)/ig,"");
所以…我想找个有趣的答案。验尸官的答案可能是最好、最正确的答案……
但! !因为我很好奇我是否可以这样做。
http://jsfiddle.net/kw7uwu2y/4/基本上:
var taskAssignedUserDataArray = $('span.label');
var value = taskAssignedUserDataArray;
$.each(value,function(){
$(this).html('<p>'+$(this).text()+"</p>");
var children = $(this).children('p');
$(this).after(children)
$(this).remove();
});
相关文章:
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- Regex模式匹配,从Javascript中的字符串中提取时间,结果出乎意料
- Javascript重复模式匹配,然后输出到文本区域
- 我可以禁用参数模式匹配吗
- 将文本值匹配/分配给属性
- Type=文本模式问题
- JavaScript测验的模式匹配
- RegEx模式匹配101-999
- 使用 Karma,如何排除与模式匹配的所有文件,但特定子文件夹中的文件除外
- 如何使用lodash返回与模式匹配的属性数组
- Regex模式匹配连接
- 正则表达式模式匹配特定单词
- 查找具有与模式匹配的属性的元素
- 正则表达式终止具有可选文本的匹配组
- 在无类型语言中是否存在模式匹配之类的东西
- JavaScript REGEX 模式匹配
- 在文本区域中进行实时模式匹配以触发事件
- regex文本模式与多个单词匹配
- javascript正则表达式将不带模式的单词与中间的文本进行匹配
- 在JavaScript中去掉与模式匹配的值前后的文本