Tôi đang cố gắng sử dụng một số RegularExpressionValidator
để xác thực độ dài nhập TextBox
. Tôi có nó hoạt động, nhưng nó chỉ chấp nhận chữ cái và số. Tôi muốn cho phép bất kỳ ký tự nào, chỉ có không quá 25 ký tự.RegularExpressionValidator để giới hạn độ dài đầu vào mà không có giới hạn về các loại ký tự
<asp:TextBox ID="MenuLabel" runat="server" />
<asp:RegularExpressionValidator ValidationExpression="^[a-zA-Z0-9]{25}$" ID="MenuLabelVal" runat="server" ErrorMessage="Menu Label must be no longer than 25 characters." ControlToValidate="MenuLabel" />
Biểu thức thông thường không phù hợp mạnh mẽ của tôi, vì vậy ai đó có thể cho tôi biết làm thế nào tôi sửa đổi ^[a-zA-Z0-9]{25}$
để đại diện cho bất kỳ ký tự lên đến 25 lần thay vì chỉ alpha-số.
Lưu ý 1: Tôi đã có RequiredFieldValidator
để đảm bảo 1 hoặc nhiều ký tự.
Note 2: Tôi biết tôi chỉ có thể sử dụng MaxLength
tài sản trên TextBox, tuy nhiên hình thức này cũng là để chỉnh sửa dữ liệu hiện có, và tôi không muốn nó chỉ đơn giản là cắt ngắn ghi hiện có khi chỉnh sửa. Tôi muốn triển khai trình xác thực giúp người dùng chỉnh sửa dữ liệu hiện có mà họ cần để rút ngắn giá trị, thay vì hình thức cắt xén mà người dùng không nhận ra.
Lưu ý 3: Tôi đang mở cho các giải pháp thay thế, chẳng hạn như trình xác thực tùy chỉnh, miễn là nó chỉ dựa vào xác thực phía máy khách. Tôi không có quyền truy cập vào mã-đằng sau để viết một trình xử lý hợp lệ tùy chỉnh trên máy chủ.
Cảm ơn tôi sẽ thử. Hình thức hiện tại không có xác nhận, chỉ cần một MaxLength đặt trên TextBox cho 125, vì vậy ít nhất nó có một giới hạn hart trên nó. –
Phiên bản thứ hai sẽ nhanh hơn – abatishchev
Ok Tôi đã thử cả '. {25}' và '^. {25} $'. Cả hai hiển thị hợp lệ với 0 hoặc 25 ký tự. 1 đến 24 xác thực là không hợp lệ. Có nên là '^. {1,25}'? –