Ответ 1
Вам нужно включить глобальный флаг:
var str="185-51-671";
var newStr = str.replace(/-/g, "");
У меня есть ID, которые выглядят так: 185-51-671, но они также могут иметь буквы в конце, 175-1-7b
Все, что я хочу сделать, это удалить дефисы как шаг предварительной обработки. Покажите мне несколько интересных способов сделать это в javascript? Я полагаю, что есть, наверное, довольно много таких вопросов, как этот, но мне интересно узнать, какие оптимизаторы придумают для "простых дефис"
Спасибо!
edit: Я использую jQuery, поэтому я предполагаю, что .replace(a, b) делает трюк (заменяя a на b)
numberNoHyphens = number.replace("-","");
любые другие альтернативы?
edit # 2:
Итак, на всякий случай кто-то задается вопросом, правильный ответ был
numberNoHyphens = number.replace(/-/g,"");
и вам понадобится "g", который является переключателем шаблона или "глобальным флагом", потому что
numberNoHyphens = number.replace(/-/,"");
будет соответствовать и заменять первый дефис
Вам нужно включить глобальный флаг:
var str="185-51-671";
var newStr = str.replace(/-/g, "");
Это не быстрее, но
str.split('-').join('');
также должен работать.
Я установил тест jsperf, если кто-то хочет добавить и сравнить их методы, но вряд ли что-то будет быстрее, чем метод replace
.
var str='185-51-671';
str=str.replace(/-/g,'');
var numericString = testString.replace(/-/gi," ");
//.replace() использует регулярное выражение. В этом случае его замена '-' на ''.
Сом этих ответов до внесения изменений не удалял все дефисы. Вам нужно будет использовать .replaceAll("-","")