2016-12-08 3 views
2

Я должен определить идентификатор членства, который представляет собой строку из 3 символов, которая может иметь буквы нижнего и верхнего регистров и цифры.Как определить регулярное выражение и убедиться, что он содержит определенный символ?

Например, AA2 и 2AA или A22 являются действительными регулярными выражениями. Это не имеет значения, я должен убедиться, что в строке есть хотя бы одна цифра.

Текущее выражение - это ([a-z]|[A-Z]|[0-9]){3}. Что я должен добавить в качестве «условия» для поиска цифры?

Спасибо заранее, Ливиу

ответ

1

Вы можете использовать предпросмотр так:

^(?=[A-Za-z]*[0-9])[A-Za-z0-9]{3}$ 

(?=[A-Za-z]*[0-9]) является положительным опережением утверждать, мы, по крайней мере, цифры после 0 или более алфавитов.

Read more about lookarounds in regex

1

Вы можете отделить условия:
cond.1 и cond.2 было бы верно, только если оба они истинны, что означает, что в cond.1 мы проверяем, если строка содержит 3 символов и в cond.2 мы проверяем, если он содержит номер:

var a=/([a-zA-Z]|[0-9]){3}/g 
var b=/([0-9]){1,2}/g 
if(a && b){ 
    //return true only if the word contains 3 characters and including at least a number 
} 
+2

Хотя этот фрагмент кода может решить вопрос, [включая пояснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает для улучшения качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. – DimaSan

+0

cond.1 и cond.2 были бы верны только в том случае, если оба они являются истинными Это означает -> при первом условии мы проверяем, содержит ли строка 3 char , а во втором условии мы проверяем, содержит ли число, по крайней мере, –