регулярное выражение и JavaScript - PullRequest
2 голосов
/ 18 июля 2010

с использованием http://www.regular -expressions.info / javascriptexample.html Я протестировал следующее регулярное выражение

 ^\\{1}([0-9])+ 

, оно разработано для сопоставления с обратной косой чертой, а затем с числом.

Это работает там

Если я тогда попробую это прямо в коде

var reg = /^\\{1}([0-9])+/;
reg.exec("/123")

Я не получу совпадений!

Что я делаю не так?

Ответы [ 2 ]

5 голосов
/ 18 июля 2010

Обновление:

По поводу обновления вашего вопроса. Тогда регулярное выражение должно быть:

var reg = /^\/(\d+)/;

Вы должны избежать косой черты внутри регулярного выражения с помощью \/.


Обратный слеш также должен быть экранирован в строке:

reg.exec("\\123")

В противном случае \1 будет рассматриваться как специальный символ.

Кстати, регулярное выражение можно упростить:

var reg = /^\\(\d+)/;

Обратите внимание, что я переместил квантификатор + в группу захвата, в противном случае он будет захватывать только одну цифру (а именно 3), а не все число 123.

2 голосов
/ 18 июля 2010

Вам нужно избежать обратной косой черты в вашей строке:

"\\123"

Также для различных ошибок реализации вы можете установить reg.lastIndex = 0;. Кроме того, {1} полностью избыточен, вы можете упростить свое регулярное выражение до /^\\(\d)+/.
Последнее замечание: (\d)+ будет захватывать только последнюю цифру , вам может понадобиться (\d+).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...