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

578

У меня есть data-123строка

Как я могу удалить data-из строки, оставляя 123?

Майкл Григсби
источник

Ответы:

1159

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

Docs.


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

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

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

Mathletics
источник
Как заменить несколько выражений? Вам нужно использовать несколько звонков .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

laaposto
источник
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 для получения дополнительной информации и использования.

Джеймс Хилл
источник
17

Пример: -

var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);

Надеюсь, это будет работать для вас.

Ранджит Канойя
источник
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'); 

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

ARC
источник
8

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

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

// strNum = 123

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

  1. str.match(/\d+$/)- возвращает массив, содержащий совпадения с любой длиной чисел в конце str. В этом случае он возвращает массив, содержащий один строковый элемент ['123'].
  2. Number()- преобразует его в числовой тип. Поскольку массив, возвращаемый из .match()содержит один элемент Number(), вернет число.
Бретт ДеВуди
источник