我想要做一個替換對包含sq-
或sq.
我的想法做這樣的字符串:如何的Javascript取代`SQ-`或`sq.`
var imgSrc = event.dataTransfer.getData('Text');
imgSrc = imgSrc.replace('sq-', 'mt-') || imgSrc.replace('sq.', 'mt.');
任何想法我可以得到這個工作?
我想要做一個替換對包含sq-
或sq.
我的想法做這樣的字符串:如何的Javascript取代`SQ-`或`sq.`
var imgSrc = event.dataTransfer.getData('Text');
imgSrc = imgSrc.replace('sq-', 'mt-') || imgSrc.replace('sq.', 'mt.');
任何想法我可以得到這個工作?
你可以用一個正則表達式做...
imgSrc = imgSrc.replace(/sq([.-])/g, 'mt$1');
字符類將與文字.
(因爲它失去了其在字符類中的特殊含義)和字面-
(看起來不像範圍,因此它也沒有特殊含義)匹配。
該比賽被放置在捕獲組1
中,其被替換爲$1
被引用。
。
那麼,你嘗試了什麼?在替換值中使用「*捕獲組*」和「*返回參考*」將是有用的。 (它可以通過「* lookbehind *」來解決,也可以使用完整匹配。) – 2012-07-11 23:31:26
以爲我可以使用原生js方法('replace()')而不是使用正則表達式(在上面的示例中) – 2012-07-11 23:32:21
無論如何,該代碼不起作用,因爲「||」被無意義地使用(「||」計算爲* first * truthy操作數,或最後一個操作數:例如'「hello」||「world」'評估爲' 「你好」')。考慮這個:'x.replace(..)。replace(..)'作爲上述方法的替代方法,而不使用正則表達式。 – 2012-07-11 23:32:56