<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>
Регулярные выражения JavaScript
Скажем у нас есть строка
var str="Наш магазин принимает только купюры в $.Стоимость одной обуви $200. Все операции ведутся в $ и только в $";
Можно ли используя регулярные выражения на JavaScript'e вытащить $200 из этой строки или хотябы цифру 200.
Пожалуйста поделитесь опытом в регулярках я очен слаб.:confused:
Код:
Для вас рег.выражение будет '/($\d*?)/'
Цитата: UAS
Мда уж.. Первые 2 ссылки (запрос - название темы) из гугла уже дают ответ о том, как это надо сделать.. Вот вам пример из первой же ссылки..
Для вас рег.выражение будет '/($\d*?)/'
Код:
<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>
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');
Код:
var data="Наш магазин принимает только купюры в $.Стоимость одной обуви $200. Все операции ведутся в $ и только в $";
reg = /(\$\d+)/
var mach = reg.exec(data);
for(var i in mach) {
console.log(i + ": " + mach);
}
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");
Цитата: Romik
Код:
var data="Наш магазин принимает только купюры в $.Стоимость одной обуви $200. Все операции ведутся в $ и только в $";
reg = /(\$\d+)/
var mach = reg.exec(data);
for(var i in mach) {
console.log(i + ": " + mach);
}
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;)
$200, $123.34 $434.456345 $435345
Чтобы все эти числа мог распознавать. А не только целочисленные.
Дабы самому не писать, я снова обратился к умному гуглу, в котором такая деревенщина (в плане рег.выражений) как дробное число - 100% есть.
Видим выражение для пхп:
Код:
$is_ok = preg_match('/^-?\d+[\.|\,]?\d+$/', $text);
Теперь создадим его для нашего выражения, где надо сделать прасинг как целых чисел, так и дробных.
/(\$\d+(\.\d+)?)/