2015-10-30 2 views
0

Вот допустимая строка, которая всегда начинается с фиксированной строки SOME_START_FORMAT_, затем заканчивается одной или несколькими цифрами. Так действительные строкиСоответствие шаблону для строки, начинающейся с символа и заканчивающейся цифрой

SOME_START_FORMAT_1234 
SOME_START_FORMAT_12 

Недействительные строки

SOME_INVALID_FORMAT_1234 
SOME_START_FORMAT_ 
SOME_START_FORMAT_1234_ 
SOME_START_FORMAT_1234_MORE 

Я пытаюсь с этим регулярным выражением ^SOME_START_FORMAT_\d+$. Что я делаю неправильно?

Fiddle

+0

Вы делаете это в каком-то конкретном языке программирования? –

+0

Что не так с выходом? У «SOME_START_FORMAT_» есть специальные символы? Не все регулярные выражения создаются равными, '\ d' и' + 'не являются стандартными регулярными выражениями. – dan08

+0

@Abhishek kumar - Я пытаюсь использовать в JavaScript –

ответ

1

Ваше регулярное выражение в порядке. Я думаю, что скрипка сбивает с толку, потому что он обрабатывает все ваши данные как одну строку с несколькими новыми строчными символами.

Ваш шаблон работает как ожидается, на отдельных строк:

var input = [ 
 
    "SOME_START_FORMAT_1234", 
 
    "SOME_START_FORMAT_12", 
 
    "SOME_INVALID_FORMAT_1234", 
 
    "SOME_START_FORMAT_", 
 
    "SOME_START_FORMAT_1234_", 
 
    "SOME_START_FORMAT_1234_MORE" 
 
]; 
 

 
var pattern = /^SOME_START_FORMAT_\d+$/; 
 

 
input.forEach(function(s) { 
 
    var isMatch = s.match(pattern) !== null; 
 
    document.write(s + ": " + isMatch + "<br>") 
 
})

1

вам нужно проверить на конец строки, а не в конце строки, чтобы ничего после цифр не будет соответствовать (\ г):

^SOME_START_FORMAT_\d+\z 

для многострочного это работает на regxr.com

/^SOME_START_FORMAT_\d+$/gm 

просто нужно добавить многострочный флаг.

+0

Это не работает в regexr, где он пытается. –

+0

это работает там/^ SOME_START_FORMAT_ \ d + $/gm http://regexr.com/3c3p1 – TinMonkey

Смежные вопросы