176,460
עריכות
מהדורה קמא (שיחה | תרומות) (אולי כך) |
מהדורה קמא (שיחה | תרומות) (תיקון) |
||
שורה 27: | שורה 27: | ||
} | } | ||
}); | }); | ||
function replaceDuplicateAnchors() { | |||
var textArea = $('#wpTextbox1'); | var textArea = $('#wpTextbox1'); | ||
var content = textArea.val(); | var content = textArea.val(); | ||
var anchorRegex = /\{\{עוגן(?:1)?\|([^}|]+)(?:\|([^}]+))?\}\}/gi; | var anchorRegex = /\{\{עוגן(?:1)?\|([^}|]+)(?:\|([^}]+))?\}\}/gi; | ||
var anchors = | var anchors = new Map(); // שימוש במבנה נתונים Map כדי למנוע כפילויות | ||
var match; | var match; | ||
while ((match = anchorRegex.exec(content)) !== null) { | while ((match = anchorRegex.exec(content)) !== null) { | ||
var key = match[1].toLowerCase(); | |||
var text = match[2] !== undefined ? match[2] : key; | |||
if (!anchors.has(key)) { | |||
anchors.set(key, []); // אם אין מפתח כזה עד כה, הוסף אותו למפתחות המפה | |||
} | |||
anchors.get(key).push({ index: match.index, length: match[0].length, text: text }); // הוסף את המידע כערך למפתח המתאים | |||
} | } | ||
anchors.forEach(function (positions) { | |||
if (positions.length > 1) { | |||
positions.forEach(function (pos, i) { | |||
var replacement; | |||
if (i > 0) { | |||
var counter = i + 1; // מספר התוקף הנוכחי | |||
replacement = `{{עוגן|${pos.text}${counter}|${pos.text}}}`; | |||
} else { | |||
replacement = `{{עוגן|${pos.text}|${pos.text}}}`; | |||
} | |||
var startIndex = pos.index + (replacement.length - pos.length) * i; | |||
content = content.slice(0, startIndex) + replacement + content.slice(startIndex + pos.length); | |||
}); | |||
} | |||
}); | }); | ||
textArea.val(content); | |||
alert('הוחלפו עוגנים כפולים בהצלחה'); | alert('הוחלפו עוגנים כפולים בהצלחה'); | ||
} | |||
}); | }); | ||
}); | }); |