Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Регулярные выражения JavaScript

976
01 сентября 2009 года
mikhalych
198 / / 04.01.2009
Как можно средствами JavaScript вытащить цену (цифры следующие после знака $) из строки.

Скажем у нас есть строка

var str="Наш магазин принимает только купюры в $.Стоимость одной обуви $200. Все операции ведутся в $ и только в $";

Можно ли используя регулярные выражения на JavaScript'e вытащить $200 из этой строки или хотябы цифру 200.
Пожалуйста поделитесь опытом в регулярках я очен слаб.:confused:
244
01 сентября 2009 года
UAS
2.0K / / 19.07.2006
Мда уж.. Первые 2 ссылки (запрос - название темы) из гугла уже дают ответ о том, как это надо сделать.. Вот вам пример из первой же ссылки..

 
Код:
<script language="JavaScript">  
var reg=/(\d+).(\d+).(\d+)/  
var arr=reg.exec("Я родился 15.09.1980")  
document.write("Дата рождения: ", arr[0], "< br>")  
document.write("День рождения: ", arr[1], "< br>")
document.write("Месяц рождения: ", arr[2], "< br>")  
document.write("Год рождения: ", arr[3], "< br>")  
</script>


Для вас рег.выражение будет '/($\d*?)/'
976
01 сентября 2009 года
mikhalych
198 / / 04.01.2009
Цитата: UAS
Мда уж.. Первые 2 ссылки (запрос - название темы) из гугла уже дают ответ о том, как это надо сделать.. Вот вам пример из первой же ссылки..

 
Код:
<script language="JavaScript">  
var reg=/(\d+).(\d+).(\d+)/  
var arr=reg.exec("Я родился 15.09.1980")  
document.write("Дата рождения: ", arr[0], "< br>")  
document.write("День рождения: ", arr[1], "< br>")
document.write("Месяц рождения: ", arr[2], "< br>")  
document.write("Год рождения: ", arr[3], "< br>")  
</script>


Для вас рег.выражение будет '/($\d*?)/'




Видимо выражение написано не правильно
выдает пустые элементы:

var bodyText=document.body.innerHTML;
bodyText=bodyText.toLowerCase();

var reg = new RegExp('/($\d*?)/');

var arr=reg.exec(bodyText);
if(arr!=null)
{
for(i=0;i<arr.length;i++)
alert(arr);
}
else
alert('NULL');

285
01 сентября 2009 года
Romik
479 / / 24.11.2002
 
Код:
var data="Наш магазин принимает только купюры в $.Стоимость одной обуви $200. Все операции ведутся в $ и только в $";
 reg = /(\$\d+)/
 var mach = reg.exec(data);
 for(var i in mach) {
    console.log(i + ": " + mach);
 }


первым значением является индекс полученного массива mach:
Цитата:

0: $200
1: $200
index: 62
input: Наш магазин принимает только купюры в $.Стоимость одной обуви $200. Все операции ведутся в $ и только в $



P.S.
можно одинако использовать var reg = /(pattern)/ и var reg = new RegExp("pattern");

976
01 сентября 2009 года
mikhalych
198 / / 04.01.2009
Цитата: Romik
 
Код:
var data="Наш магазин принимает только купюры в $.Стоимость одной обуви $200. Все операции ведутся в $ и только в $";
 reg = /(\$\d+)/
 var mach = reg.exec(data);
 for(var i in mach) {
    console.log(i + ": " + mach);
 }


первым значением является индекс полученного массива mach:


P.S.
можно одинако использовать var reg = /(pattern)/ и var reg = new RegExp("pattern");



Замечательно !!!
Большое спасибо Romik;)

976
01 сентября 2009 года
mikhalych
198 / / 04.01.2009
А возможно ли добавить в это выражение возможность распознавать цифры с плавающей точкой. То есть и целые и не целые числа.

$200, $123.34 $434.456345 $435345

Чтобы все эти числа мог распознавать. А не только целочисленные.
244
02 сентября 2009 года
UAS
2.0K / / 19.07.2006
mikhalych, да все там вверно, забыл просто \ поставить перед $. Да, и юзайте RegEx Coach.

Дабы самому не писать, я снова обратился к умному гуглу, в котором такая деревенщина (в плане рег.выражений) как дробное число - 100% есть.
Видим выражение для пхп:
 
Код:
$is_ok = preg_match('/^-?\d+[\.|\,]?\d+$/', $text);


Теперь создадим его для нашего выражения, где надо сделать прасинг как целых чисел, так и дробных.

/(\$\d+(\.\d+)?)/
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог