亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript 通過正向后視拆分字符串

JavaScript 通過正向后視拆分字符串

UYOU 2021-07-13 17:09:09
我正在嘗試拆分包含分隔符的字符串,例如"a/b/c" 會成為 ["a/", "b/", "c"]"a//b" 會成為 ["a/", "/", "b"]var s = "a/b/c".split(/(?<=\/)/);   console.log(s); // prints ["a/", "b/", "c"]它在 Chrome 中運行良好,但 Firefox 說: SyntaxError: invalid regexp group因此我的問題:代碼合法嗎?如何讓它在 Firefox 和 Edge 中工作?
查看完整描述

3 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

我認為 Firefox 還不支持lookbehinds。相反,您可以使用捕獲組進行拆分以保留定界符,匹配組內不是正斜杠的任何前面的字符,然后過濾以刪除空字符串。例如:


let s = 'a/b/c'.split(/([^/]*\/)/).filter(x => x);

console.log(s);

// ["a/", "b/", "c"]


let s = 'a//b'.split(/([^/]*\/)/).filter(x => x);

console.log(s);

// ["a/", "/", "b"]


查看完整回答
反對 回復 2021-07-15
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

我不知道為什么那個東西在其他瀏覽器中不起作用。但是您可以使用以下技巧replace:


var text = 'a/b/c';

var splitText = text

    .replace(new RegExp(/\//, 'g'), '/ ') // here you are replacing your leading slash `/` with slash + another symbol e.g. `/ `(space is added) 

    .split(' ') // to further split with added symbol as far as they are removed when splitting.

 console.log(splitText) // ["a/", "b/", "c"]

通過這種方式,您可以避免使用在 FireFox、Edge 等中不起作用的復雜正則表達式。


查看完整回答
反對 回復 2021-07-15
  • 3 回答
  • 0 關注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號