当数组中的一项是带逗号的字符串时,将数组拆分为字符串列表
Split array to string list when one of the items in the array is a string with commas
要从数组在显示字段中创建列表,我使用以下代码将数组项从逗号“,”中拆分出来:
'fragrance_list': ["fragrance one" , "fragrance two", "fragrance seven";
xtype: 'displayfield',
name: 'fragrance_list',
bind: '{record.fragrance_list}',
renderer: function (value, field) {
if (value && value.indexOf(',') > -1) {
this.rndTpl = this.rndTpl || new Ext.XTemplate('<div style = "line-
height: 150%;' +
'margin-left: -25px; margin-top: -12px; padding-left: 5px; padding-
right: 5px;">' +
'<ul><li>{[values.fragrance_list.replace(/,/g, "<li/>")]}</li></ul>'
+
'</div>');
return this.rndTpl.apply({
fragrance_list: value
});
} else {
return ' ' + value
}
}
return 类似于:
. fragrance one
. fragrance two
. fragrance seven
问题是当数组项之一可能位于数组的不确定位置时,其字符串中有一个或多个逗号:
'fragrance_list': ["fragrance one" , "fragrance two", "fragrance A, n.º 5", "fragrance 7";
return
. fragrance one
. fragrance two
. fragrance A
. n.º 5
. fragrance 7
改为
. fragrance one
. fragrance two
. fragrance, n.º 5
. fragrance 7
有什么解决办法吗?
我不完全确定你的代码结构,但如果你想剪切的是一个长字符串,你可以将引号本身添加到 regex
:
'<ul><li>{[values.fragrance_list.replace(/" {0,}, {0,}"/g, "<li/>")]}</li></ul>'
因此 regex
将匹配:
- 单句,(/部分)。
- 零个或更多空格(' {0,}' 部分)。
- 单逗号(',' 部分)。
- 零个或更多空格(' {0,}' 部分)。
- 单句,("/ 部分)。
但是,如果您尝试通过数组中的值构建列表(即使它是一个只有一个元素的数组),那么正确的方法是使用 map
函数:
arrOfData.map( function(dataUnit){
renderString += "<li>" + dataUnit + "</li>";
});
或es6
语法
arrOfData.map( dataUnit => renderString += `<li>${dataUnit}</li>`);
>var frag= (fragrance_list.indexOf(' "," ') > -1)?fragrance_list.split('","'):fragrance_list;
第一个和最后一个:
firstfrag=frag[0].split(' " ')[1];
lastfrag=frag[frag.length-1].split(' " ')[0];
要从数组在显示字段中创建列表,我使用以下代码将数组项从逗号“,”中拆分出来:
'fragrance_list': ["fragrance one" , "fragrance two", "fragrance seven";
xtype: 'displayfield',
name: 'fragrance_list',
bind: '{record.fragrance_list}',
renderer: function (value, field) {
if (value && value.indexOf(',') > -1) {
this.rndTpl = this.rndTpl || new Ext.XTemplate('<div style = "line-
height: 150%;' +
'margin-left: -25px; margin-top: -12px; padding-left: 5px; padding-
right: 5px;">' +
'<ul><li>{[values.fragrance_list.replace(/,/g, "<li/>")]}</li></ul>'
+
'</div>');
return this.rndTpl.apply({
fragrance_list: value
});
} else {
return ' ' + value
}
}
return 类似于:
. fragrance one
. fragrance two
. fragrance seven
问题是当数组项之一可能位于数组的不确定位置时,其字符串中有一个或多个逗号:
'fragrance_list': ["fragrance one" , "fragrance two", "fragrance A, n.º 5", "fragrance 7";
return
. fragrance one
. fragrance two
. fragrance A
. n.º 5
. fragrance 7
改为
. fragrance one
. fragrance two
. fragrance, n.º 5
. fragrance 7
有什么解决办法吗?
我不完全确定你的代码结构,但如果你想剪切的是一个长字符串,你可以将引号本身添加到 regex
:
'<ul><li>{[values.fragrance_list.replace(/" {0,}, {0,}"/g, "<li/>")]}</li></ul>'
因此 regex
将匹配:
- 单句,(/部分)。
- 零个或更多空格(' {0,}' 部分)。
- 单逗号(',' 部分)。
- 零个或更多空格(' {0,}' 部分)。
- 单句,("/ 部分)。
但是,如果您尝试通过数组中的值构建列表(即使它是一个只有一个元素的数组),那么正确的方法是使用 map
函数:
arrOfData.map( function(dataUnit){
renderString += "<li>" + dataUnit + "</li>";
});
或es6
语法
arrOfData.map( dataUnit => renderString += `<li>${dataUnit}</li>`);
>var frag= (fragrance_list.indexOf(' "," ') > -1)?fragrance_list.split('","'):fragrance_list;
第一个和最后一个:
firstfrag=frag[0].split(' " ')[1];
lastfrag=frag[frag.length-1].split(' " ')[0];