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


Відповіді:


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.