2014-11-03 2 views
-5

Помогите мне сделать регулярное выражение для строк, включая числа.Регулярное выражение lookfroward greedy

Я должен разобрать 1234, 1234567, но я не должен найти что-то вроде 1232: или 1233s.

Я попробовал этот

/[0-9]*/

но это завсегдатаи принимает матчи 1233 из строки 1233s, но в случае, если этого не делает.

+0

/^ [0-9] + $/ударит только-номер, содержащие строки. добавьте точку в диапазон для десятичных знаков – dandavis

ответ

0

Попробуйте с этим:

/[\d]+/ 

Я надеюсь, что это будет хорошо

+2

Это приведет к ошибке по той же причине, что и исходное регулярное выражение OP: оно соответствует любой последовательности цифр в строке, независимо от того, что вокруг них. –

2

Попробуйте отрицательный предпросмотр:

/^\d+(?!:)$/ 

Описание:

  • \d+ спички один и больше номеров
  • (?!:) не следует толстой кишки.

Глядя и вопрос более внимательно, и при условии, что : не единственный символ, который вы хотите, чтобы предотвратить от соответствия (спасибо MikeW), вы должны быть хорошо идти с простым регулярным выражением:

/^\d+$/ 
+0

Не хватит ли '/^\ d + $ /'? –

+0

@MikeW Похоже, я полностью задумался над этим! Конечно ты прав. Большое спасибо! – dfsq

1

Рассмотрите возможность использования parseInt функции вместо регулярных выражений:

parseInt("1233s") 
1233 
parseInt("1232:") 
1232 
Смежные вопросы