Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Чего не нравится браузеру в этой реге? (https://javascript.ru/forum/misc/63923-chego-ne-nravitsya-brauzeru-v-ehtojj-rege.html)

warren buffet 08.07.2016 12:33

Чего не нравится браузеру в этой реге?
 
Паттерны используются скриптом, но бразуер засирает консоль воплями подобного рода

Цитата:

Невозможно проверить <input pattern='^[-+]?[0-9\s]+(\,[0-9]{0,0})?$'>, потому что pattern не является корректным regexp: invalid identity escape in regular expression

Вопрос, чего ему не нравится в реге

^[-+]?[0-9\s]+(\,[0-9]{0,0})?$

?

И второй, если я сделаю как ему нравится, такая рега будет нормально работать в js и php?

Яростный Меч 08.07.2016 12:46

запятую не надо эскейпить

да и {0,0} непонятно что. [0-9]{0,0} - "взять цифру ноль раз" - наверно, это можно выкинуть из регекса

warren buffet 08.07.2016 18:58

Да я в регах полный нуль, то есть 0.0. Поэтому мне как говорят, я так и делаю. Реги все натырены в том числе на сайте паттернов для хтмл5. Ну так если я выкину это лишнее экранирование, все будет работать как и прежде?

Насколько я помню, эта рега для чисел от -0.0 до +0.0 или с запятой.

Erolast 09.07.2016 06:50

Цитата:

Ну так если я выкину это лишнее экранирование, все будет работать как и прежде?
Вот взял бы да и проверил.
Вообще-то должно работать, да.

Цитата:

сделаю как ему нравится, такая рега будет нормально работать в js
Да.

warren buffet 11.07.2016 05:03

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

$dec=$data['decimals'];
'pattern'=>'^[-+]?[0-9\s]+(\\'.NUM_DEC_MARK.'[0-9]{0,'.$dec.'})?$',



То есть NUM_DEC_MARK может быть запятой, точкой и чем угодно, а $dec может быть от 0 до 9 скажем (надо смотреть ману по mySQL), то есть в decimals лежит количество знаков за запятой числа. Для целых там 0, поэтому получается {0,0}

Помогите, сами мы не местные, как нарисовать правильный паттерн для проверки всех чисел от целых до плавающих со знаком и разделителем запятой или точкой так, чтобы бразуер был щаслив.

рони 12.07.2016 06:32

warren buffet,
может чем поможет ...
<input pattern='^\s*([-+]*[0-9]*(?:[.,][0-9]+)?)\s*$' >

warren buffet 12.07.2016 18:23

Это значит оно пропустит и точку и запятую? Так нельзя. Там преобразование в число и обратно использует ту же глобальную дефайну.

Заодно, какого он пишет:

Цитата:

Полноэкранное API с префиксом является устаревшим. Пожалуйста, используйте для полноэкранного режима API без префикса. Для получения дополнительной помощи обратитесь к https://developer.mozilla.org/en-US/...Fullscreen_API
Если по указанному адресу голимые префиксы?

рони 12.07.2016 19:07

Цитата:

Сообщение от warren buffet
Это значит оно пропустит и точку и запятую?

выбор за вами

Erolast 12.07.2016 20:40

Цитата:

Если по указанному адресу голимые префиксы?
Ты на русский язык не переключил случайно? Там устаревший гайд. Причем еще и непереведен, аха.
В адресной строке должно быть en-US, а не ru.


Часовой пояс GMT +3, время: 00:39.