Не работают регулярные выражения
Здравствуйте, не могу проверит строку на наличие в ней оперделенного куска, вот сама строка:
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, время: 23:10. |