Не работают регулярные выражения
Здравствуйте, не могу проверит строку на наличие в ней оперделенного куска, вот сама строка:
https://ru.aliexpress.com/item/High-quality-Hand-Spinner-Fidget-toy-metal-Plastic-EDC-Tri-Finger-Spinner-For-Autism-and-ADHD/32801344258.html?spm=2114.03010208.3.12.zImVf7f Нужно по куску /32801344258.html Определить что она подходит. Примеры которые я пробовал:
new RegExp("/\d+\.html/").test(str)
new RegExp("\d+\.html").test(str)
new RegExp("/^.*\d+\.html.*$/").test(str)
Все они не работают, хотя очень странно, софт по типу RegexBuddy 3 прекрасно находит, также серверные языки PHP и Python тоже воспринимают некоторые примеры, но JS не хочет. |
Нужно делать или так:
new RegExp("\\d+\\.html")
или так: /\d+\.html/ |
var url = 'https://ru.aliexpress.com/item/High-quality-Hand-Spinner-Fidget-toy-metal-Plastic-EDC-Tri-Finger-Spinner-For-Autism-and-ADHD/32801344258.html?spm=2114.03010208.3.12.zImVf7f';
if(/\/\d+\.html(?=\W|$)/.test(url)) {
alert(true);
}
|
Спасибо, первый вариант работает, второй нет, я такой уже пробовал.
вот только не пойму почему первый работает, мы выходит экранируем обратный слеш... но там же нету такого символа в строке |
Цитата:
alert('\d+');
alert('\\d+');
|
Цитата:
Посмотри как это делает Ruslan_xDD. |
Цитата:
Вот даже на википедии написано ![]() обрати внимание, цифровой символ это \d, если мне нужно показать что цифр много то я пишу \d+ все логично, так везде работает, но только не в JS, ему нужен еще один слеш, зачем....:-? |
Цитата:
Цитата:
|
Цитата:
alert(/\d+/.test(1234)); Если как строку - то придется "экранировать экран". ;)
alert(new RegExp('\\d+').test(1234));
Иначе в строке это будет просто
alert('\d+');
|
друзья, подскажите пожалуйста.
данный пример с карманами $1 и $2 работает alert('a@b aa@bb'.replace(/([a-z]+)@([a-z]+)/g, '$2@$1')); нулевой $0 карман должен соответствовать найденному выражению
alert('aaa bbb'.replace(/[a-z]+/g, '!$0!'));
но этот код не работает. подскажите пожалуйста, где ошибка? |
| Часовой пояс GMT +3, время: 21:46. |