javascript - 用于查找 <span> 标签中的属性的 Javascript 正则表达式是什么?

标签 javascript regex html-sanitizing

我有一个<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/

相关文章:

java - 使用正则表达式(或类似的东西)用单词替换逗号(将Java项目移植到Objective C)

asp.net - .NET 的 HTML sanitizer

Python - lxml 库 'clean' 方法仅删除空 <li> 节点的一半

MySQL HTML 清理

javascript - 动画结束时 addEventListener 不触发

javascript - 其他窗口中的结果页面

javascript - 鸭子类型(duck typing) : Translating Ruby Code into Javascript Utilizing Duck Typing

javascript - 使用纯 javascript 将 div 内容移动到另一个 div

javascript - 如何修复 RegEX 模式以找到所有匹配项?

Python 正则表达式后视需要固定宽度的模式