Как удалить текст из строки?


Ответы:


1159

var ret = "data-123".replace('data-','');
console.log(ret);   //prints: 123

Docs.


Для всех случаев, которые будут отброшены, используйте:

var ret = "data-123".replace(/data-/g,'');

PS: функция replace возвращает новую строку и оставляет исходную строку без изменений, поэтому используйте возвращаемое значение функции после вызова replace ().


Как заменить несколько выражений? Вам нужно использовать несколько звонков .replace?
Dror Bar

124

Это не имеет ничего общего с jQuery. Вы можете использовать replaceфункцию JavaScript для этого:

var str = "data-123";
str = str.replace("data-", "");

Вы также можете передать регулярное выражение в эту функцию. В следующем примере он заменит все, кроме чисел:

str = str.replace(/[^0-9\.]+/g, "");

Не могли бы вы объяснить, что делает регулярное выражение? Я не понимаю, почему он заменяет строку, кроме чисел, если 0-9было указано.
Ротими-

60

Вы можете использовать "data-123".replace('data-','');, как уже упоминалось, но , как replace()только заменяет ПЕРВОЕ экземпляр текста соответствия, если строка была что - то вроде "data-123data-"то

"data-123data-".replace('data-','');

заменит только первый соответствующий текст. И ваш вывод будет"123data-"

DEMO

Поэтому, если вы хотите, чтобы все совпадения текста были заменены на строку, вы должны использовать регулярное выражение с таким gфлагом:

"data-123data-".replace(/data-/g,'');

И ваш вывод будет "123"

demo2


28

Вы можете использовать функцию slice (), которая восстанавливает символы от начала до конца (включая конечную точку)

   string.slice(start , end);

Вот несколько примеров, чтобы показать, как это работает:

var mystr = ("data-123").slice(5); // jast define start point so output is "123"
var mystr = ("data-123").slice(5,7); // define start and end  so output is "12"
var mystr=(",246").slice(1); // returens "246"

демонстрация


23

Достаточно простого старого JavaScript - jQuery не нужен для такой простой задачи:

var myString = "data-123";
var myNewString = myString.replace("data-", "");

Смотрите: .replace()документы по MDN для получения дополнительной информации и использования.



11

Я привык к методу C # (Sharp) String.Remove. В Javascript нет функции удаления для строки, но есть функция substr. Вы можете использовать функцию substr один или два раза, чтобы удалить символы из строки. Вы можете сделать следующую функцию, чтобы удалить символы в начале индекса до конца строки, точно так же, как метод c # сначала перегружает String.Remove (int startIndex):

function Remove(str, startIndex) {
    return str.substr(0, startIndex);
}

и / или вы также можете сделать следующую функцию, чтобы удалить символы при начальном индексе и числе, точно так же, как вторая перегрузка метода c # String.Remove (int startIndex, int count):

function Remove(str, startIndex, count) {
    return str.substr(0, startIndex) + str.substr(startIndex + count);
}

и тогда вы можете использовать эти две функции или одну из них для ваших нужд!

Пример:

alert(Remove("data-123", 0, 5));

Выход: 123


9

Эта маленькая функция, которую я сделал, всегда работала для меня :)

String.prototype.deleteWord = function (searchTerm) {
    var str = this;
    var n = str.search(searchTerm);
    while (str.search(searchTerm) > -1) {
        n = str.search(searchTerm);
        str = str.substring(0, n) + str.substring(n + searchTerm.length, str.length);
    }
    return str;
}

// Use it like this:
var string = "text is the the cool!!";
string.deleteWord('the'); // Returns text is cool!!

Я знаю, что это не самое лучшее, но у меня всегда получалось :)


В своем ответе вы показываете, как функция замены строки работает более или менее, но на самом деле простое использование функции замены строки намного проще и проще, чем ваш!

9
str.split('Yes').join('No'); 

Это заменит все вхождения этой конкретной строки из исходной строки.


8

Использование match()и Number()для возврата numberпеременной:

Number(("data-123").match(/\d+$/));

// strNum = 123

Вот что делает вышеприведенное утверждение ... работая посредине:

  1. str.match(/\d+$/)- возвращает массив, содержащий совпадения с любой длиной чисел в конце str. В этом случае он возвращает массив, содержащий один строковый элемент ['123'].
  2. Number()- преобразует его в числовой тип. Поскольку массив, возвращаемый из .match()содержит один элемент Number(), вернет число.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.