Я должен написать код JavaScript для замены символов в переменной:JavaScript заменить все
var data = "abcd.-3*(adsa3sd"
С переменной data
я должен заменить 0-9a-zA-Z
и .
символов.
Я хочу выход быть:
-*(
Как это можно сделать?
Я должен написать код JavaScript для замены символов в переменной:JavaScript заменить все
var data = "abcd.-3*(adsa3sd"
С переменной data
я должен заменить 0-9a-zA-Z
и .
символов.
Я хочу выход быть:
-*(
Как это можно сделать?
Короткая версия:
"abcd.-3*(adsa3sd".replace(/[\da-zA-Z.]+/g, '');
>> "-*("
Вы также можете количественно определить '[]' с '+', чтобы уменьшить количество необходимых замен. – MikeM
@MikeM Ты прав. С другой стороны, я думаю, что JS-двигатели оптимизируют такие вещи. Это хорошая идея для исследований. – oleq
@MikeM [подтвержден тест] (http://jsperf.com/replace-and-quantifiers). Ты прав. – oleq
Попробуйте это:
text.replace(new RegExp('[A-Z|a-z|0-9|\\.]','g'),"")
, чтобы избавиться от этого.
Использование text.replace(new RegExp('[A-Z|a-z|0-9|\.]','g'),"")
text
, где находится объект строки.
Downvoted, не оставляя комментариев, серьезно? – D3V
Не downvoter, но я бы предположил, что это было потому, что вы использовали новый RegExp против буквального. – rlemon
Использование регулярного выражения буквально внутренне вызывает 'new RegExp()', и я считаю, что если один и тот же литерал встречается несколько раз в js, будут созданы несколько экземпляров RegExp. Так что мне интересно, какая разница? Возможно, мое понимание этой концепции неверно. – D3V
Вы сначала попробовали Google? http://naspinski.net/post/Javascript-replaceAll-function.aspx –
вам нужно только новое регулярное выражение для этого –
Да, я действительно пробовал, но все результаты говорят о непрерывной строке только – Varun