可用時間: 周一周二周三 8-12 12-5 其他型別的聯系方式: 短信 不可用時間: 周四 8-12
我想將上面的字串拆分為三個單獨的陣列第一個陣列 = [周一周二周三 8-12 12-5]
第二個陣列 = [短信]
第三個陣列 = [星期四 8-12]
我嘗試使用 split 功能,但效果很好!我很感激你的幫助。提前致謝
uj5u.com熱心網友回復:
將拆分與正則運算式一起使用
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);
uj5u.com熱心網友回復:
只要字串的粗體部分始終相同,您就可以嘗試這樣的操作:
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)
uj5u.com熱心網友回復:
OP 是否意味著
["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*(?<available>.*?)\s Other type of contact:\s*(?<contact>.*?)\s Unavailable Times:\s*(?<unavailable>.*?)\s*$/
一個簡單
String.prototype.match的將收到一個陣列,該陣列包含匹配本身,然后是 3 個捕獲組的結果為了只接收一個沒有匹配的陣列,需要
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://www.uj5u.com/houduan/457108.html
標籤:javascript 正则表达式 分裂
上一篇:要匹配的正則運算式模式,除非子句兩邊都用波浪號(~)括起來
下一篇:如何提取關鍵字后的單詞
