簡體   English   中英

添加空格,保留HTML標記

[英]Add blank spaces leaving HTML tags

我有一個字符串,我想檢查它的單詞是否大於或等於15個字符。 如果是這樣,請將該單詞拆分為5個字符,並用空格分隔,然后返回包含拆分單詞的相同字符串。

我的代碼可以工作,但是問題是我的字符串也可以包含HTML標記,我希望不要碰它們。

function space_that(_e){

    var w = [];
    var t = $(_e).text();

    w = t.split(" ");

    for(var s in w)
        if(w[s].length >= 15)
            w[s] = w[s].substr(0,10) + " ";

    $(_e).text(w.join(" "));

    return true;

}

只需檢查該部分是否以<開頭,那么它就是HTML標記。

function space_that(_e){

    var w = [];
    var t = $(_e).text();

    w = t.split(" ");

    for(var s in w) {
        if(w[s].length >= 15 
           && w[s].substring(0, 1) != "<" 
           && w[s].substring(w[s].length-1, 1) != ">")
            w[s] = w[s].substr(0,10) + " ";
    }

    $(_e).text(w.join(" "));

    return true;

}

編輯:更正了錯誤(舊答案僅影響html標簽),並添加了用於打開和關閉標簽的檢查。

以下版本適用於內部有空格的標簽。

function space_that(_e){

    var w = [];
    var t = $(_e).text();

    w = t.split(" ");
    var inTag = false;

    for(var s in w) {
        if(w[s].substring(0, 1) == "<") inTag = true;
        if(w[s].substring(w[s].length-1, 1) == ">") inTag = false;
        if(inTag) continue;
        if(w[s].length >= 15 
           && w[s].substring(w[s].length-1, 1) != ">")
            w[s] = w[s].substr(0,10) + " ";
    }

    $(_e).text(w.join(" "));

    return true;

}

暫無
暫無

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

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