有一個 textarea 并且想要提取key:value(類似于下圖)

我有一個正則運算式,但沒有按預期作業
/([^\s][a-zA-Z!] :(\s)?"?([a-z0-9\s.] )"?[^ $])/gi
如果用戶當時輸入以下字串,則正則運算式中斷組key:value。
is:"browser" browser: "chrome 11.11 V" node: error type:"Error"
預期組:
is:"browser"
browser: "chrome 11.11 V"
node: error
type:"Error"
uj5u.com熱心網友回復:
您可以使用
const text = 'is:"browser" browser: "chrome 11.11 V" node: error type:"Error"';
const re = /(\w ):\s*(?:"([^"]*)"|(\S ))/g;
let dict = {}, m;
while(m = re.exec(text)) {
dict[m[1]]=(m[3] || m[2]);
}
console.log(dict);
// Or just get all matches:
console.log(text.match(re))
請參閱正則運算式演示。詳情:
(\w )- 第 1 組:一個或多個單詞字符:- 一個冒號\s*- 零個或多個空格(?:"([^"]*)"|(\S ))- 任何一個"([^"]*)"-", 0 非逗號(在第 2 組中捕獲),"|- 或者(\S )- 第 3 組:一個或多個非空白字符。
uj5u.com熱心網友回復:
正則運算式:
/([a-zA-Z!] :\s*[" ]?([a-z0-9\s.] )[" $])/gi
文本:
sdfd:"dsffs" dsfd: "dsf demo" sfd: dsf fdsff:"fdsfsdf"
串列:
sdfd:"dsffs"
dsfd: "dsf demo"
sfd: dsf
fdsff:"fdsfsdf"
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/358395.html
標籤:javascript 正则表达式
下一篇:如何遍歷json物件中的陣列
