我有一個字符串,我想更新該字符串中兩個註釋之間的值。使用JS RegEx替換兩個字符串之間的文本
我不知道我該怎麼做,使用正則表達式
var string = "/* ANIMATION START */ new string should be added here /* ANIMATION END */";
我知道我應該用什麼.replace()
與RegEx
,但我不知道,以創建表達。
我有一個字符串,我想更新該字符串中兩個註釋之間的值。使用JS RegEx替換兩個字符串之間的文本
我不知道我該怎麼做,使用正則表達式
var string = "/* ANIMATION START */ new string should be added here /* ANIMATION END */";
我知道我應該用什麼.replace()
與RegEx
,但我不知道,以創建表達。
這是Regex,你將需要使用:
\/\*[\w\s]+\*\/([\w\s]+)\/\*[\w\s]+\*\/
演示:
這是a sample code你需要使用替換的文本,並獲得所需輸出:
var string = "/* ANIMATION START */ new string should be added here /* ANIMATION END */";
var regex = /(\/\*[\w\s]+\*\/)([\w\s]+)(\/\*[\w\s]+\*\/)/ig;
string = string.replace(regex, "$1 ###ADDED TEXT### $3");
console.log(string);
我們只需要分別使用其他兩個匹配組爲ANIMATION START
和ANIMATION END
部分,所以我們可以在替換字符串重用他們。
分爲3個部分:
「(\ [\ S \ S] | [^」])*」用於匹配雙引號字符串
「(\ [\ S \ S] |匹配單引號字符串[^ '])*'
(// |。?。/ * [\ S \ S] * /)用於匹配單和多行註釋
的替換函數檢查匹配的字符串是否是註釋,如果不是,則不要替換,如果是,則替換「和」。
function t_replace(data){
var re = /"(\\[\s\S]|[^"])*"|'(\\[\s\S]|[^'])*'|(\/\/.*|\/\*[\s\S]*?\*\/)/g;
return data.replace(re, function(all, strDouble, strSingle, comment) {
if (comment) {
return all.replace(/"/g, '"').replace(/'/g, ''');
}
return all;
});
}
感謝這個作品在測試中的表現!只是有一個錯誤,當我將此添加到JS'意外的令牌非法' 'var string =「/ *動畫開始* /新字符串應該在這裏添加/ * ANIMATION END * /」; var regex = \/\ * [\ w \ s] + \ * \ /([\ w \ s] +)\/\ * [\ w \ s] + \ * \ /; string = string.replace(正則表達式,「一些很酷的代碼!!!」);' –
@DenisLapiLapadatovic那麼你有這個異常,因爲正則表達式不正確,你需要使用'RegExp'構造函數創建它或包裝它在兩個'/'之間,FYI:在替換調用中使用正則表達式將替換整個正則表達式。 –
這個作品真棒!非常感謝你! –