Например:Заменить п-ю вхождение строки
'abcjkjokabckjk'.replace('/(abc)/g',...)
Если я хочу для замены указать позицию «ABC», что я могу сделать?
Как это:
Например:Заменить п-ю вхождение строки
'abcjkjokabckjk'.replace('/(abc)/g',...)
Если я хочу для замены указать позицию «ABC», что я могу сделать?
Как это:
Используйте RegExp
конструктор для передачи переменных в регулярном выражении.
var s = 'abcjkjokabckjk'
search = 'abc'
var n = 2
alert(s.replace(RegExp("^(?:.*?abc){" + n + "}"), function(x){return x.replace(RegExp(search + "$"), "HHHH")}))
Sweet !! Вы могли бы использовать игла 'search' в RegExp. – FFish
Это может быть сделано без регулярных выражений.
методов Струнных String#indexOf
, String#lastIndexOf
могут быть использованы с String#substring
var string = 'abcde|abcde|abcde|abcde',
needle = 'abc',
firstIndex = string.indexOf(needle),
lastIndex = string.lastIndexOf(needle);
// ----------------------------------------------------------------
// Remove first occurence
var first = string.substring(0, firstIndex) + '***' + string.substring(firstIndex + needle.length);
document.getElementById('first').innerHTML = first;
// ----------------------------------------------------------------
// Remove last occurence
var last = string.substring(0, lastIndex) + '***' + string.substring(lastIndex + needle.length);
document.getElementById('last').innerHTML = last;
// ----------------------------------------------------------------
// Remove nth occurence
// For Demo: Remove 2nd occurence
var counter = 2, // zero-based index
nThIndex = 0;
if (counter > 0) {
while (counter--) {
// Get the index of the next occurence
nThIndex = string.indexOf(needle, nThIndex + needle.length);
}
// Here `nThIndex` will be the index of the nth occurence
}
var second = string.substring(0, nThIndex) + '***' + string.substring(nThIndex + needle.length);
document.getElementById('second').innerHTML = second;
table tr td:nth-child(2) {
color: green;
}
td {
padding: 15px;
}
<table border="1px">
<tr>
<td>After replacing <strong>first</strong> occurence:</td>
<td id="first"></td>
</tr>
<tr>
<td>After replacing <strong>last</strong> occurence:</td>
<td id="last"></td>
</tr>
<tr>
<td>After replacing <strong>2nd<sup>zero-based index</sup></strong> occurence:</td>
<td id="second"></td>
</tr>
</table>
вы хотите заменить второе вхождение в 'abc'? – Tushar
не только второй, если строка состоит из многих «abc», как заменить параметр «abc» собой? – ChenLee
как sepcific? u должен делить условие, чтобы найти этот конкретный «abc». для ex: второй, последний или «abc» после «z» – Aaron