2 回答
TA贡献1798条经验 获得超7个赞
其实这个问题,很简单,分析一下就知道了。分析如下:
var str = "我是/@小王@\\和/@小李@\\的好朋友"
你要转成
var arr = [{"text": "我是"}, {"name": 小王"}, {"text": "和"}, {"name": "小李"}, {"text": "的好朋友"}]
以我看来就是,通过/@和@\把字符串分割,并且以/@结尾的放到text属性中,以@\结尾的放到name中,并且保持原有顺序。
既然是有两个分割字符,那么我们就分割两次。我简单写了一下,但是没有做太多检验和判断。回头你对参数做下校验。
我的代码如下:
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);
那么,最后控制台输入如下:
如果没问题,请采纳,谢谢。
添加回答
举报