Соответствующий синтаксис синтаксиса синтаксиса Regexp (и сокращенная форма)
Ну, я довольно новичок в регулярном выражении и, в частности, в js regexp
Я ищу создание регулярного выражения, соответствующего синтаксису Hex Color (например, "# 34ffa6" )
затем я заглянул на страницу w3school: Объект JavaScript RegExp
Тогда мое регулярное выражение: /^ # [0-9a-е] {6}/г
похоже, работает, но если я хочу, чтобы он соответствовал форме "короткий шестнадцатеричный синтаксис"? (например, "# 3fa" ), это возможно? Я пытался использовать caracter |, но, возможно, я ошибаюсь в синтаксисе...
спасибо заранее и извините за плохой английский (я итальянский...)
Ответы
Ответ 1
/^#[0-9a-f]{3,6}$/i
будет соответствовать #abc
, #abcd
, #abcde
, #abcdef
/^#([0-9a-f]{3}|[0-9a-f]{6})$/i
будет соответствовать #abc
и #abcdef
, но не #abcd
/^#([0-9a-f]{3}){1,2}$/i
будет соответствовать #abc
и #abcdef
, но не #abcd
/^#(?:[0-9a-f]{3}){1,2}$/i
будет соответствовать #abc
и #abcdef
, но не #abcd
Посмотрите RegExp - MDN, чтобы узнать больше о регулярных выражениях в javascript.
Ответ 2
Попробуйте следующее:
/^#([0-9a-f]{6}|[0-9a-f]{3})$/i
[0-9a-f]{6}
= 6 символов
[0-9a-f]{3}
= 3 символа
$
= end
Ответ 3
это должно работать
/#[0-9a-f]{6}|#[0-9a-f]{3}/gi
и для регулярного поиска регулярных выражений и изучения его вы можете использовать этот сайт
http://gskinner.com/RegExr/