Biểu thức chính quy để giới hạn số lượng ký tự là 10


187

Tôi đang cố gắng viết một biểu thức thông thường sẽ chỉ cho phép các chữ cái viết thường và tối đa 10 ký tự. Những gì tôi có cho đến nay trông như thế này:

pattern: /^[a-z]{0,10}+$/ 

Điều này không hoạt động hoặc biên dịch. Tôi đã có một cái làm việc chỉ cho phép các chữ cái viết thường:

pattern: /^[a-z]+$/ 

Nhưng tôi cần giới hạn số lượng ký tự là 10.


4
{} Và + làm điều tương tự (đếm), do đó chúng là dự phòng, do đó xảy ra lỗi.
PhiLho

1
Bạn nên bỏ '+' từ / ^ [az] {0,10} + $ /. Nó phải là / ^ [az] {0,10} $ /
Người dùng SO

1
Lưu ý rằng mẫu ^[a-z]{0,10}+$biên dịch trên một số ngôn ngữ và một số ngôn ngữ đáng chú ý là Java, Perl (5.10+), PHP, Ruby (1.9+). Xem trang này để biết thêm chi tiết.
Jerry

Xem thêm giải pháp phổ quát qua lookahead: Hạn chế độ dài ký tự trong biểu thức chính quy
Vadzim

Câu trả lời:


353

Bạn có thể sử dụng dấu ngoặc nhọn để kiểm soát số lần xuất hiện. Ví dụ: điều này có nghĩa là 0 đến 10:

/^[a-z]{0,10}$/

Các tùy chọn là:

  • {3} Chính xác 3 lần xuất hiện;
  • {6,} Ít nhất 6 lần xuất hiện;
  • {2,5} 2 đến 5 lần xuất hiện.

Xem tài liệu tham khảo biểu thức chính quy .

Biểu thức của bạn có dấu + sau dấu ngoặc nhọn đóng, do đó xảy ra lỗi.


Trong các công cụ phát triển chrome với ember, tôi phải sử dụng các ^yêu cầu CHỈ bắt đầu với các tên như 1234hoặc 5678, và tôi phải bao gồm ký hiệu $
Devin G Rhode

11

/^[a-z]{0,10}$/nên làm việc. /^[a-z]{1,10}$/nếu bạn muốn khớp ít nhất một ký tự, giống như /^[a-z]+$/vậy.


9

Có thể có ích khi thêm kết hợp tham lam vào cuối chuỗi, vì vậy bạn có thể chấp nhận chuỗi> hơn 10 và biểu thức chính quy sẽ chỉ trả về tối đa 10 ký tự đầu tiên. /^[a-z0-9]{0,10}$?/


8

Nó phụ thuộc rất nhiều vào chương trình bạn đang sử dụng. Các chương trình khác nhau ( Emacs , vi , sedPerl ) sử dụng các biểu thức chính quy hơi khác nhau. Trong trường hợp này, tôi muốn nói rằng trong mẫu đầu tiên, "+" cuối cùng sẽ bị xóa.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.