我有一个<div contenteditable="true>
我试图用它来从用户那里获取文本。我会使用一个简单的 <textarea>
,但我需要换行符,最终需要列表和表格等。我正在尝试构建一个半富文本编辑器,但不是一个成熟的编辑器。我不想使用富文本编辑器。
我正在尝试消除 <span>
上的属性输入 <div contenteditable="true>
中的文本中的标签。有没有办法用正则表达式来做到这一点?我在想出正则表达式时遇到了困难,因为我不知道如何使字符串以 <span
开头。并以 >
结尾之间可以有任意数量的字符。有没有一种方法可以将其合并到一个正则表达式中?我想出了/^<span >$/
但这不起作用,因为两个字符串之间没有划分。像这样的东西会起作用吗:/^[<span][>]$/g
?
最佳答案
使用 DOM 函数。下面是一些使用 jQuery 的代码,使其更容易阅读:
$('#your-div span').each(function() {
var elem = this, $elem = $(this);
$.each(elem.attributes, function(i, attr) {
if(attr) {
$elem.removeAttr(attr.name);
}
});
});
演示:http://jsfiddle.net/ThiefMaster/qfsAb/
但是,在您的情况下,您可能不仅希望从跨度中删除属性,而且还希望从所有元素中删除属性,除非该属性是例如对齐
或href
。
所以,这里有一些 JS:http://jsfiddle.net/ThiefMaster/qfsAb/1/
$('#your-div').children().each(function() {
var elem = this, $elem = $(this);
$.each(elem.attributes, function(i, attr) {
if(attr && attr.name != 'href' && attr.name != 'align') {
$elem.removeAttr(attr.name);
}
});
});
关于javascript - 用于查找 <span> 标签中的属性的 Javascript 正则表达式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5717689/