【发布时间】:2021-06-23 08:14:10
【问题描述】:
我有一个字符串
sReasons = "O9C2700021Not eligible for SDWCEOC3900015Service upgradeHJC3900015Service upgradeJ8C5000016Delivery Attempt";
我需要根据分隔符数组来拆分上面的字符串
const separator = ["O9", "EO", "HJ", "J8"];
其中前 2 个字符 (O9) 表示网络代码,接下来的 4 个字符是另一个代码 (C270) & 接下来的 4 个字符 (0021) 是不符合 SDWC 条件的字符串的长度
分隔符代码唯一,2个大写字母,textMessage中除inEligType外不会重复
我需要创建一个json格式
{
{inEligType: "O9", msgCode: "C270", msgLen: "0021", textMsg: "Not eligible for SDWC"},
{inEligType: "EO", msgCode: "C390", msgLen: "0015", textMsg: "Service upgrade"},
{inEligType: "HJ", msgCode: "C390", msgLen: "0015", textMsg: "Service upgrade"},
{inEligType: "J8", msgCode: "C500", msgLen: "0016", textMsg: "Delivery Attempt"}
}
我基本上没有根据给定的数组拆分字符串本身,我尝试了以下
sReasons = "O9C2700021Not eligible for SDWCEOC0900015Service upgradeHJC3900015Service upgradeJ8C5HJ0016Delivery Attempt";
const separator = ["O9", "EO", "HJ", "J8"];
function formatReasons(Reasons: string) {
var words: any[] = Reasons.split(this.spearator);
for(let word in words)
{
console.log(word) ;
}
}
var result = formatReasons(sHdnReasonsCreate);
console.log("Returned Result: "+result);
但它给了我结果
["O9C2700021Not eligible for SDWCEOC0900015Service upgradeHJC3900015Service upgradeJ8C5HJ0016Delivery Attempt"]length: 1__proto__: Array(0)
Returned Address is: undefined
【问题讨论】:
-
如果用作分隔符的两个字母字符串之一恰好出现在
textMessage字段的中间,你会怎么做?您最好根据实际数据格式进行拆分,方法是采用适当长度的子字符串 -
它们不会出现,因为它们是独一无二的,不会出现在
textMessage或msgCode
标签: javascript angular regex typescript split