簡體   English   中英

在<span>標簽中</span>查找屬性的Javascript Regexp是什么<span>?</span>

[英]What is the Javascript Regexp for finding the attributes in a <span> tags?

我有一個<div contenteditable="true> ,我試圖用它來從用戶那里獲取文本,我會使用一個簡單的<textarea> ,但是我需要換行符,最后需要列表和表格等。那是半文本格式的文本編輯器,但不是完整的文本格式的編輯器。我不想使用文本格式的文本編輯器。

我正在嘗試從鍵入<div contenteditable="true>的文本中消除<span>標記上的屬性。使用Regexp有辦法嗎?我遇到了一個Regexp的困難,因為我可以沒有弄清楚如何使字符串以<span開頭並以>結束並且可以在任意數量的字符之間插入。是否有一種方法可以將其組合到一個Regexp中呢?我想出了/^<span >$/但這不起作用,因為兩個字符串之間沒有除法,這樣的工作是否可行: /^[<span][>]$/g

解析HTML ,然后去除屬性。 如果您在瀏覽器中執行此操作,則可以使用一個高級HTML解析器(或者您擁有IE) ,所以請使用它!

為此使用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/

但是,在您的情況下,您可能不僅要從范圍中刪除屬性,而且要從所有元素中刪除屬性,除非該屬性是alignhref

因此,這里有一些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);
        }
    });
});

我在http://jsfiddle.net/b3DSQ/上做了一個工作演示

$('#editor span').each(function(i, el) {
    var attrs = el.attributes;
    $.each(attrs, function(i, a) {
        $(el).removeAttr(a.name);
    });
});

[我更改了一個較早的版本,將內容復制到內存中,進行了編輯,然后進行了替換-尚未意識到鍵入div的內容在DOM中是自動有效的]。

嘗試這個:

your_string.replace(/<span[^>]*>/g, '<span>');

但是,如果用戶在<span title="Go > there">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM