Подтвердить что ты не робот

Соответствующий синтаксис синтаксиса синтаксиса Regexp (и сокращенная форма)

Ну, я довольно новичок в регулярном выражении и, в частности, в js regexp

Я ищу создание регулярного выражения, соответствующего синтаксису Hex Color (например, "# 34ffa6" ) затем я заглянул на страницу w3school: Объект JavaScript RegExp

Тогда мое регулярное выражение:    /^ # [0-9a-е] {6}/г

похоже, работает, но если я хочу, чтобы он соответствовал форме "короткий шестнадцатеричный синтаксис"? (например, "# 3fa" ), это возможно? Я пытался использовать caracter |, но, возможно, я ошибаюсь в синтаксисе...

спасибо заранее и извините за плохой английский (я итальянский...)

4b9b3361

Ответ 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/