|
|
|
| var str = "(926) 999-2323"
test = str.replace("/\D/","");
alert("test");
что я делаю не так ? | |
|
|
|
|
|
|
|
для: sidPR
(16.03.2011 в 18:50)
| | кавычки лишние в алерте :)
| |
|
|
|
|
|
|
|
для: Lelik
(16.03.2011 в 18:53)
| | не эту я тут в посте ошибся :) выводит тотже телефон вообще.. я хочу удалить все кроме цифр.. но не выходит как только не бился :( в пхп все воркает нормально | |
|
|
|
|
|
|
|
для: sidPR
(16.03.2011 в 19:02)
| | скорее всего дело в кавычках
уже разбирался аналогичный вопрос на днях
test = str.replace("/\\D/","");
|
| |
|
|
|
|
|
|
|
для: Lelik
(16.03.2011 в 19:29)
| | Кстати, у меня этот вариант почему-то не срабатывает тоже, вероятно там в чем-то еще дело...
<script>
var str = "(926) 999-2323";
test = str.replace("/\\D/", "");
alert(test);
</script>
|
| |
|
|
|
|
|
|
|
для: cheops
(16.03.2011 в 19:41)
| | У вас ДЕТСКАЯ ошибка синтаксиса в операторе replace ().
Первым операндом должно быть РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ, а не СТРОКА, как у Вас.
Т.е. регулярное выражение НЕ НАДО закавычивать.
Кроме того, НЕ НАДО экранировать обратный слэш, если Вы используете "синтаксис №1" для регулярного выражения.
Ну и, наконец, если Вы хотите удалить ВСЕ нецифровые символы, то необходимо использовать в регулярном выражении "модификатор глобальности" g
Окончательно:
test = str.replace ("/\\D/", ""); //Ваш вариант, НЕПРАВИЛЬНЫЙ
test = str.replace (/\D/g, ""); //ПРАВИЛЬНЫЙ вариант, где рег-е выр-е использовано в "синтаксисе №1" -- кавычки и экранирование слеша НЕ НУЖНЫ
test = str.replace (new RegExp ("\\D", "g"), ""); //ПРАВИЛЬНЫЙ вариант, где рег-е выр-е использовано в "синтаксисе №2" -- кавычки и экранирование ОБЯЗАТЕЛЬНЫ
|
| |
|
|
|
|
|
|
|
для: Абырвалг
(17.03.2011 в 00:29)
| | Хм... собственно внизу, я такой вариант и привел, что-то не пришло в голову, что здесь строить регулярное выражение при помощи кавычек нельзя, но при создании объекта RegExp() требуется строка (или позволяется). Собственно я лишь модифицировал представленный код, сам бы я почти со 100% вероятностью избегал бы для JS кавычек для регулярных выражений, так как в них нужные лишние слеши, как вы и показали выше. Собственно из-за непоследовательности (неортогональности) интерфейса JavaScript и возникают такие ошибки, если бы был лишь один способ объявлять регулярные выражения, я думаю и темы бы этой не появилось. | |
|
|
|
|
|
|
|
для: sidPR
(16.03.2011 в 18:50)
| | Может вам такой скрипт больше подойдет?
<script>
var str = "(926) 999-2323";
var expr = /\D/g;
test = str.replace(expr, "");
alert(test);
</script>
|
| |
|
|
|
|
|
|
|
для: cheops
(16.03.2011 в 19:38)
| | спасибо большое :) вроде запахало | |
|
|
|