Tôi muốn kiểm tra xem mật khẩu có chứa ít nhất một chữ cái và một số hay không. ký tự đặc biệt được chấp nhận nhưng không bắt buộc ...kiểm tra xem chuỗi có chứa cả số và chữ cái (ít nhất)
Đó sẽ là trình kiểm tra mật khẩu đơn giản.
Tôi muốn kiểm tra xem mật khẩu có chứa ít nhất một chữ cái và một số hay không. ký tự đặc biệt được chấp nhận nhưng không bắt buộc ...kiểm tra xem chuỗi có chứa cả số và chữ cái (ít nhất)
Đó sẽ là trình kiểm tra mật khẩu đơn giản.
Bạn có thể sử dụng khẳng định lookahead để kiểm tra sự tồn tại của bất kỳ chữ số và bất kỳ thư như:
^(?=.*[a-zA-Z])(?=.*[0-9])
/.*?(?:[a-z].*?[0-9]|[0-9].*?[a-z]).*?/
(chỉ một giải pháp khả thi)
gì về chữ in hoa? Ngoài ra những gì hiện '. *?' Làm chính xác và làm thế nào đến bạn sử dụng nó trước khi '|' nhưng không phải trong bit sau đó? – AlastairG
Thêm cờ 'i',' *? 'Là một kết quả tham lam (google it). Và tôi quên làm điều đó ở phần thứ hai của đường ống. – poke
Không phải là '*?' A * non * -greedy match? –
([0-9].*[a-zA-Z])\|([a-zA-Z].*[0-9])
Không chắc chắn nếu đường ống cần phải được thoát trong môi trường regexp của bạn hay không.
Sử dụng một regex duy nhất cho điều này có thể dẫn đến một chút không đọc được mã/không đáng tin cậy. Có thể có ý nghĩa hơn khi sử dụng các regex đơn giản hơn ví dụ: [0-9]
để kiểm tra sự tồn tại của một chữ số và ngắt các yêu cầu của trình kiểm tra độ mạnh mật khẩu của bạn thành một dòng nhiều if
. Ngoài ra, điều này cho phép bạn biết rõ hơn ở giai đoạn nào việc xác thực không thành công và có thể đưa ra đề xuất cho người dùng.
giải pháp đơn giản để kiểm tra mật khẩu có chứa ít nhất một lá thư, ít nhất một chữ số và không có khoảng trắng:
\S*(\S*([a-zA-Z]\S*[0-9])|([0-9]\S*[a-zA-Z]))\S*
Điều này khác với/cải thiện các câu trả lời hiện tại như thế nào? mô tả, đặc biệt trong trường hợp này. – Bowdzone
Cảm ơn, nó hoạt động như một sự quyến rũ (: – FallenAngel
Bạn có thể thả phần '. * $'. –
@TimPietzcker: Bạn đang đúng. Cảm ơn. – codaddict