在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/C++  HTML/ 如何將js字符串分割指定的標(biāo)簽組成數(shù)組

如何將js字符串分割指定的標(biāo)簽組成數(shù)組

比如:
var str = "我是/@小王@\\和/@小李@\\的好朋友"
轉(zhuǎn)成
var arr = [ "我是", "/@小王@\\", "和", "/@小李@\\", "的好朋友" ]
我嘗試str.split(/\/@|@\\/)得到["我是", "小王", "和", "小李", "的好朋友"]
需要保留標(biāo)簽和順序用以區(qū)分,split正則標(biāo)簽會(huì)被去掉很困擾。
能夠做到這樣就更好了
var arr = [{"text": "我是"}, {"name": 小王"}, {"text": "和"}, {"name": "小李"}, {"text": "的好朋友"}]

回答
編輯回答
玩控

其實(shí)這個(gè)問(wèn)題,很簡(jiǎn)單,分析一下就知道了。分析如下:

var str = "我是/@小王@\\和/@小李@\\的好朋友"

你要轉(zhuǎn)成

  var arr = [{"text": "我是"}, {"name": 小王"}, {"text": "和"}, {"name": "小李"}, {"text": "的好朋友"}]

以我看來(lái)就是,通過(guò)/@和@\把字符串分割,并且以/@結(jié)尾的放到text屬性中,以@\結(jié)尾的放到name中,并且保持原有順序。
既然是有兩個(gè)分割字符,那么我們就分割兩次。我簡(jiǎn)單寫(xiě)了一下,但是沒(méi)有做太多檢驗(yàn)和判斷。回頭你對(duì)參數(shù)做下校驗(yàn)。

我的代碼如下:

var str = "我是/@小王@\\和/@小李@\\的好朋友";
    var strs = str.split("/@");
    var arr = new Array();
    for (var i = 0 ;i < strs.length;i++)
    {
        if(strs[i].indexOf('@\\') != -1)
        {
            var temps = strs[i].split('@\\');
            for(var j=0;j<temps.length;j++)
            {
                if(j == temps.length -1)
                {
                    var text =
                    {
                        text:temps[j]
                    }
                }else
                {
                    var name =
                    {
                        name:temps[j]
                    }
                }
            }
        }else
        {
            var text =
            {
                text:strs[i]
            }
        }
        if(name != null && '' != name && 'undifined' != name)
        {
            arr.push(name);
        }
        if(text != null && '' != text && 'undifined' != text)
        {
            arr.push(text);
        }
    }
    console.log(arr);
那么,最后控制臺(tái)輸入如下:

圖片描述

如果沒(méi)問(wèn)題,請(qǐng)采納,謝謝。

2017年8月15日 23:04
編輯回答
凝雅

說(shuō)下我的另外一個(gè)簡(jiǎn)單的解決辦法就是,手動(dòng)replace多補(bǔ)一個(gè)@ 像這樣/@@小明@@\\,在用str.split(/\/@|@\\/)分割就有標(biāo)識(shí)了。

2017年12月5日 14:00