У меня есть строка data-123
.
Как я могу удалить data-
из строки, оставляя 123
?
У меня есть строка data-123
.
Как я могу удалить data-
из строки, оставляя 123
?
Нет необходимости JQuery.
var ret = "data-123".replace('data-','');
console.log(ret); //prints: 123
Это не имеет ничего общего с jQuery. Вы можете использовать функцию JavaScript replace
для этого:
var str = "data-123";
str = str.replace("data-", "");
Вы также можете передать регулярное выражение для этой функции. В следующем примере он заменит все, кроме цифр:
str = str.replace(/[^0-9\.]+/g, "");
Вы можете использовать "data-123".replace('data-','');
, как уже упоминалось, но поскольку replace()
заменяет только экземпляр FIRST соответствующего текста, если ваша строка была чем-то вроде "data-123data-"
, тогда
"data-123data-".replace('data-','');
заменит только первый соответствующий текст. И ваш выход будет "123data-"
Итак, если вы хотите, чтобы все совпадения текста были заменены в строке, вам нужно использовать регулярное выражение с флагом g
:
"data-123data-".replace(/data-/g,'');
И ваш выход будет "123"
вы можете использовать slice(), он обновляет charcters между началом до конца (включенная конечная точка)
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()
docs в MDN.
Ex: -
var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);
Надеюсь, это сработает для вас.
Я был использован для метода С# (Sharp) String.Remove. В Javascript нет функции удаления для строки, но есть функция substr. Вы можете использовать функцию substr один или два раза для удаления символов из строки. Вы можете сделать следующую функцию для удаления символов в начале индекса до конца строки, так же как метод С# сначала перегружает String.Remove(int startIndex):
function Remove(str, startIndex) {
return str.substr(0, startIndex);
}
и/или вы также можете сделать следующую функцию для удаления символов в начале индекса и подсчета, так же как второй метод перегрузки С# 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()
, он вернет номер.str.split('Yes').join('No');
Это заменит все вхождения этой конкретной строки из исходной строки.