(Я не уверен, что ваше выражение лица правильное, но пока что просто соответствует тому, что у вас есть.)
Используя объект RegExp, вам необходимо экранировать косую черту :
var ver_reg = new RegExp("^\\*|.*\\..*$");
В качестве альтернативы вы можете использовать регулярное выражение:
var ver_reg = /^\*|.*\..*$/;
Это отвечает на ваш прямой вопрос, но ...
Что касается выражения, то, что вы определенно хотите исправить - это якоря начала / конца, каждый из которых применяется к одной стороне чередования.
т.е. Вы говорите <this>|<that>
, где <this>
это ^\*
, а <that>
это .*\..*$
То, что вы хотите, это ^(?:<this>|<that>)$
, чтобы гарантировать, что маркеры начала / конца не являются частью альтернатив (но используют ?:
, поскольку мы не собираем группу).
Итак, /^(?:\*|.*\..*)$/
, используя второй пример выше - это исправление также потребуется применить к версии PHP (которая может использовать тот же синтаксис).
Я бы также поставил под сомнение ваше использование .
вместо \w
или [^.]
или аналогичного, но не зная, что вы на самом деле делаете, я не могу точно сказать, что имеет больше смысла. *
Надеюсь, это поможет! :)