在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  HTML/ replace(/"([^"]*)"/g, &qu

replace(/"([^"]*)"/g, "'$1'")與replace(/"/g, "'")效果相同,為何要用前者

在 w3school 的 replace() 方法介紹中,有這樣一個例子:

// 在本例中,我們將把字符串中所有單詞的首字母都轉(zhuǎn)換為大寫
name = '"a", "b"';
name.replace(/"([^"]*)"/g, "'$1'"); // 'a', 'b'

而換成如下簡寫

name = '"a", "b"';
name.replace(/"/g, "'"); // 'a', 'b'

效果是相同的。既然后者可以實現(xiàn),為什么要用前者?是僅為了說明$1的用法還是有什么好處?

回答
編輯回答
終相守

這兩個正則表達式的含義就不一樣
你這個replace(/"/g, "'"); 是把所有的"轉(zhuǎn)換為'

而這個表達式 replace(/"([^"]*)"/g, "'$1'"); 是把所有的雙引號包裹著,且中間沒有出現(xiàn)雙引號的值,替換為用單引號包裹。

比如有這樣的一個字符串:'"dsds"dsd","ggfgfg"'
替換結(jié)果為:`

'"dsds"dsd","ggfgfg"'.replace(/"/g, "'");//值為:'dsds'dsd','ggfgfg'
'"dsds"dsd","ggfgfg"'.replace(/"([^"]*)"/g, "'$1'"); //值為: 'dsds'dsd','ggfgfg"
2018年4月12日 04:56