可用时间:周一星期二周三8-12 12-5 其他类型的联系人: SMS 不可用时间:周四8-12
我想将上面的字符串拆分为三个单独的数组,第一数组=星期一,星期三,星期二,8-12 - 12-5。
第二阵列= SMS
第三阵列=星期四8-12
我试过使用拆分函数,但是很有效!我很感谢你的帮助。提前感谢
发布于 2022-04-06 01:29:02
与regex一起使用拆分
let str = 'Available Times: Monday Tuesday Wednesday 8-12 12-5 Other type of contact: SMS Unavailable Times: Thursday 8-12'
let replace = str.replace('Available Times: ', '');
let arr = replace.split(/ Other type of contact: | Unavailable Times: /)
console.log(arr);
发布于 2022-04-06 01:27:53
只要字符串的粗体部分始终相同,就可以尝试这样的操作:
var s = "Available Times: Monday Tuesday Wednesday 8-12 12-5 Other type of contact: SMS Unavailable Times: Thursday 8-12"
var arr = []
arr.push(s.split(" Unavailable Times: ")[1])
s = s.split(" Unavailable Times: ")[0]
arr.unshift(s.split(" Other type of contact: ")[1])
s = s.split(" Other type of contact: ")[0]
arr.unshift(s.split("Available Times: ")[1])
console.log(arr)发布于 2022-04-06 02:36:16
操作是指
["Monday Tuesday Wednesday 8-12 12-5"]还是["Monday", "Tuesday", "Wednesday", "8-12", "12-5"],对于剩下的两个也是这样吗?或 ..。OP甚至意味着一个包含三个字符串项(如.["Monday Tuesday Wednesday 8-12 12-5", "SMS", "Thursday 8-12"]__ )的数组。之所以会出现这个问题,是因为OP没有提供预期结果的适当语法,而且三个单独的数组(每个数组只有一个项)没有任何意义。
如果只将信息提取为三个分隔的字符串值,下面的正则表达式可能会有所帮助.
/Available Times:\s*(?.*?)\s+Other type of contact:\s*(?.*?)\s+Unavailable Times:\s*(?.*?)\s*$/
使用简单的 1的
String.prototype.match的结果slice .RegExp.prototype.exec和一些
const sampleData =
'Available Times: Monday Tuesday Wednesday 8-12 12-5 Other type of contact: SMS Unavailable Times: Thursday 8-12';
// see ... [https://regex101.com/r/jVedS4/1]
const regXGroups =
/Available Times:\s*(?<available>.*?)\s+Other type of contact:\s*(?<contact>.*?)\s+Unavailable Times:\s*(?<unavailable>.*?)\s*$/;
console.log(
sampleData.match(regXGroups)
);
console.log(
sampleData.match(regXGroups).slice(1)
);
const {
unavailable,
available,
contact,
} = regXGroups.exec(sampleData)?.groups ?? {};
console.log([available, contact, unavailable]);.as-console-wrapper { min-height: 100%!important; top: 0; }
https://stackoverflow.com/questions/71760026
复制相似问题