tôi đang cố gắng để tạo ra một regex
để xác nhận tên người dùng đó phải phù hợp với những điều sau đây:Regex để phù hợp với tên người dùng
- Chỉ có một char đặc biệt
(._-)
phép và nó không phải ở extremas của chuỗi - ký tự đầu tiên không thể là một số
- Tất cả các nhân vật khác cho phép là chữ và số
- tổng chiều dài nên từ 3 đến 20 ký tự
Điều này là dành cho mẫu xác thực HTML5, thật đáng buồn phải là một regex lớn.
Cho đến nay đây là những gì tôi đã có:
^(?=(?![0-9])[A-Za-z0-9]+[._-]?[A-Za-z0-9]+).{3,20}
Nhưng lookahead tích cực có thể được lặp đi lặp lại nhiều lần cho phép để có nhiều hơn một ký tự đặc biệt mà không phải là những gì tôi muốn. Và tôi không biết cách sửa nó.
Không phải là câu trả lời được nêu ra - nhưng bạn cần phải phá vỡ '.' trong '[._-]'. – amit
Đối với một cái gì đó phức tạp này, tại sao bạn chọn để đi với một mẫu xác nhận html? Bạn có thể kích hoạt sự kiện xử lý xác thực thay vì mẫu. – Eclecticist
@amit [._-] là một ký tự đơn trong danh sách "._-" nghĩa là dấu chấm không được coi là bất kỳ ký tự nào, vì vậy tôi nghĩ rằng tôi không cần phải chia nhỏ nó – Tofandel