Не работают регулярные выражения
Здравствуйте, не могу проверит строку на наличие в ней оперделенного куска, вот сама строка:
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!')); но этот код не работает. подскажите пожалуйста, где ошибка? |
Цитата:
|
Цитата:
|
т.е. такой формы записи $0 вообще нет?
я встречал примеры с $0, но они у меня не работали. $& - работают. http://theory.phphtml.net/books/java...t-glava-3.html там очень много устаревшего. и еще, попробовал специсимволы (они работают): $`часть строки до совпадения. $' часть строки после совпадения. $& всё найденное совпадение и встречал $$ - но не понял, для чего он? спасибо. |
alecto,
$$ Вставляет "$" |
Цитата:
|
Цитата:
|
alecto,
alert('aaa bbb'.replace(/([a-z]+)/g, '!$$1!')); alert('aaa bbb'.replace(/([a-z]+)/g, '!$1!')); |
т.е. чтобы не выполнялось преобразование кармана в значение, а просто вывелся его номер?
|
Цитата:
Цитата:
|
вроде понял.
спасибо огромное! к сожалению, движок не дает возможности плюсовать ответившим репутацию (( |
Часовой пояс GMT +3, время: 20:04. |