У мене data-123
струна.
Як я можу видалити data-
з рядка, поки залишаю 123
?
У мене data-123
струна.
Як я можу видалити data-
з рядка, поки залишаю 123
?
Відповіді:
var ret = "data-123".replace('data-','');
console.log(ret); //prints: 123
Для всіх випадків, які слід відкинути, використовуйте:
var ret = "data-123".replace(/data-/g,'');
PS: Функція заміни повертає нову рядок і залишає початкову рядок незмінною, тому використовуйте значення повернення функції після виклику substitu ().
Це не має нічого спільного з jQuery. Ви можете використовувати функцію JavaScript replace
для цього:
var str = "data-123";
str = str.replace("data-", "");
Ви також можете передати регулярний вираз цій функції. У наступному прикладі він замінить усе, крім числових:
str = str.replace(/[^0-9\.]+/g, "");
0-9
було зазначено.
Ви можете використовувати "data-123".replace('data-','');
, як згадувалося, але як replace()
лише замінює ПЕРШИЙ екземпляр відповідного тексту, якщо ваш рядок був чимось на зразок "data-123data-"
тоді
"data-123data-".replace('data-','');
замінить лише перший відповідний текст. І ваш вихід буде"123data-"
Отже, якщо ви хочете, щоб всі збіги тексту були замінені рядком, вам потрібно використовувати регулярний вираз із таким g
прапором:
"data-123data-".replace(/data-/g,'');
І ваш вихід буде "123"
ви можете використовувати 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"
Простий старий JavaScript буде достатнім - jQuery не потрібен для такого простого завдання:
var myString = "data-123";
var myNewString = myString.replace("data-", "");
Див. .replace()
Документи про MDN для отримання додаткової інформації та використання.
Наприклад: -
var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);
Сподіваємось, це допоможе вам.
Я звик до методу 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
Ця маленька функція, яку я зробив, завжди працювала для мене :)
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!!
Я знаю, що це не найкраще, але для мене це завжди працювало :)
Використання match()
та Number()
повернення number
змінної:
Number(("data-123").match(/\d+$/));
// strNum = 123
Ось що робить твердження вище ... робота середнього рівня:
str.match(/\d+$/)
- повертає масив, що містить збіги, до будь-якої довжини чисел в кінці str
. У цьому випадку він повертає масив, що містить один елемент рядка ['123']
.Number()
- перетворює його на тип числа. Оскільки масив, повернутий з .match()
містить один елемент Number()
, поверне число.