2009-06-09 44 views
7

Tôi gặp sự cố khi tôi cần sử dụng một số RegularExpressionValidator để giới hạn chiều dài của chuỗi thành 400 ký tự.Cụm từ thông dụng để giới hạn chiều dài chuỗi

biểu hiện của tôi là .{0,400}

Câu hỏi của tôi: Có cách nào để hạn chế độ dài của các nhân vật đến 400 mà không cần dùng vào khoảng trống xem xét?

Tôi muốn có thể chấp nhận các khoảng trống trong chuỗi nhưng không tính nó theo chiều dài. Điều này có thể không?

+0

Điều này không đúng với biểu thức chính quy nhưng có nhiều ngôn ngữ. Bạn đang cố gắng triển khai ngôn ngữ nào trong ngôn ngữ này? – Copas

+0

Tôi đang sử dụng kiểm soát RegularExpressionValidator trong ứng dụng web asp.net (vb.net). – Boopid

Trả lời

11

tôi khá nhiều đồng ý với Greg, nhưng đây là regex bạn muốn:

^\s*([^\s]\s*){0,400}$ 

@Boopid: Nếu bạn thực sự có nghĩa là chỉ có các nhân vật không gian, thay thế \ s với một không gian trong regex.

+0

Không phải là [^ \ s] thay vì [^]? Khác hơn thế: tốt đẹp! – Stephan202

+0

(hoặc người hỏi bởi 'khoảng trống' thực sự chỉ có nghĩa là ký tự khoảng trắng?) – Stephan202

+2

Hoặc đơn giản là \ S thay vì [^ \ s] –

7

Có vẻ như bạn có thể muốn viết lớp trình xác thực của riêng mình thay vì sử dụng RegularExpressionValidator. Biểu thức chính quy chắc chắn có cách sử dụng của chúng, nhưng điều này không giống như một trong số chúng.

Trình xác thực tùy chỉnh của bạn có thể xóa tất cả các khoảng trắng, sau đó kiểm tra độ dài của chuỗi. Cuối cùng, mã sẽ dễ đọc hơn so với một biểu thức chính quy làm điều tương tự.

+0

Tôi đồng ý, chỉ cần xóa tất cả khoảng trắng và kiểm tra độ dài của chuỗi. Có lẽ rất hiệu quả so với regex được đề xuất ở trên (mặc dù đây chỉ là một lý thuyết). –

Các vấn đề liên quan