Як видалити символ з рядка за допомогою Javascript?
Я дуже близький до того, щоб отримати це, але це просто неправильно.
Все, що я хотів би зробити, це видалити символ r
з рядка.
Проблема в тому, що у рядку є більше одного екземпляра r
.
Однак, це завжди символ з індексом 4 (тобто 5-й символ).
Приклад рядка: crt/r2002_2
Що я хочу: crt/2002_2
Дана функція заміни видаляє обидва r
mystring.replace(/r/g, '')
Виводить: ct/2002_2
.
Я спробував цю функцію:
String.prototype.replaceAt = function (index, char) {
return this.substr(0, index) + char + this.substr(index + char.length);
}
mystring.replaceAt(4, '')
Вона працює, тільки якщо я заміню її на інший символ. Вона не буде просто видаляти його.
Якісь думки?
309
3
замінить
/r
на/
за допомогоюString.prototype.replace
.Крім того, ви можете використовувати regex з глобальним прапором (як запропоновано Erik Reppen & Sagar Gala, нижче) для заміни всіх входжень на
ПРАВКА: Оскільки всім тут так весело, а user1293504, схоже, не повернеться найближчим часом, щоб відповісти на уточнюючі запитання, ось спосіб вилучення N-го символу з рядка:
Оскільки user1293504 використовував звичайний підрахунок замість підрахунку з нульовим індексом, ми повинні видалити 1 з індексу, якщо ви хочете використати це для відтворення роботи
charAt
, не віднімайте 1 з індексу в 3-му рядку і використовуйтеtmp.splice(i, 1)
замість цього.Завжди є рядкові функції, якщо ви знаєте, що завжди збираєтеся видалити четвертий символ:
char.length
дорівнює нулю. У цьому випадку потрібно додати1
, щоб пропустити символ.