Як видалити текст із рядка?


Відповіді:


1157

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

Документи


Для всіх випадків, які слід відкинути, використовуйте:

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

PS: Функція заміни повертає нову рядок і залишає початкову рядок незмінною, тому використовуйте значення повернення функції після виклику substitu ().


Як замінити кілька виразів? Чи потрібно використовувати кілька .замінити дзвінки?
— Dror Bar

124

Це не має нічого спільного з jQuery. Ви можете використовувати функцію JavaScript replaceдля цього:

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

Ви також можете передати регулярний вираз цій функції. У наступному прикладі він замінить усе, крім числових:

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

Чи можете ви пояснити, що робить регекс? Я не розумію, чому він замінює рядок, крім цифр, якщо це 0-9було зазначено.
— rotimi-best

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);

ось дещо exmp, щоб показати, як це працює:

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.