Кажется довольно трудным иметь regex, который делает точно, что Вы хотите (т.е. примите только случаи, в которых Вы нуждаетесь и отклоняете весь другие и возврат некоторые группы для этих трех компонентов). Я имею, дают ему попытку и придумывают это:
^(\*|(\d+(\.(\d+(\.(\d+|\*))?|\*))?))$
IMO (я не протестировал экстенсивно) это должно хорошо работать как блок проверки допустимости для входа, но проблема состоит в том, что этот regex не предлагает способ получить компоненты. Для этого все еще необходимо сделать разделение на периоде.
Это решение не едино, но большинство раз в программировании его не должен. Конечно, это зависит от других ограничений, которые Вы могли бы иметь в своем коде.
jQuery предоставляет для этого метод add
. Наиболее распространенный случай - добавить в набор jQuery дополнительные элементы, соответствующие заданному селектору (переданному в добавить
), но вы также можете использовать его для выполнения стандартного объединения двух наборов. :
$c = $a.add($b).addClass('foo')
add
возвращает новый обернутый набор, содержащий объединенную и уникальную комбинацию this
и данного набора. Обратите внимание, что $ b
остается без изменений.