首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆分Javascript字符串

拆分Javascript字符串
EN

Stack Overflow用户
提问于 2022-04-06 01:13:35
回答 3查看 78关注 0票数 0

可用时间:周一星期二周三8-12 12-5 其他类型的联系人: SMS 不可用时间:周四8-12

我想将上面的字符串拆分为三个单独的数组,第一数组=星期一,星期三,星期二,8-12 - 12-5。

第二阵列= SMS

第三阵列=星期四8-12

我试过使用拆分函数,但是很有效!我很感谢你的帮助。提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-04-06 01:29:02

regex一起使用拆分

代码语言:javascript
复制
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);

票数 0
EN

Stack Overflow用户

发布于 2022-04-06 01:27:53

只要字符串的粗体部分始终相同,就可以尝试这样的操作:

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 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的

  1. 将接收一个数组,该数组保存匹配本身,然后是3 String.prototype.match的结果

  1. 为了只接收一个没有匹配的数组,需要对数组进行slice .

  1. One还可以通过RegExp.prototype.exec和一些
  2. 来利用。

代码语言:javascript
复制
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]);
代码语言:javascript
复制
.as-console-wrapper { min-height: 100%!important; top: 0; }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71760026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档