Tôi cần phải thay thế tất cả các ký tự không khớp với phạm vi a-zA-Z_-0-9
. Vì vậy, tôi làm val.replace(/[^a-zA-Z_-0-9]/g, '')
nhưng gặp lỗi. Làm thế nào tôi có thể bit này? Cảm ơnval.replace (/ [^ a-zA-Z_-0-9]/g, '') tạo SyntaxError: phạm vi không hợp lệ trong lớp nhân vật
Trả lời
Nếu bạn muốn bao gồm các dấu trừ "-" trong lớp nhân vật, bạn cần phải đặt nó vào cuối khoảng:
val.replace(/[^a-zA-Z_0-9-]/g, '')
Bạn có dải ô sai, xóa -
giữa _
và phạm vi số và đặt vào cuối hoặc ở đầu.
Bạn hy vọng rằng -
nhân vật để được phân tích như là theo nghĩa đen, nhưng nó là trong thực tế phân tích như một loạt: _-0
nghĩa _
-0
, giống như a-z
nghĩa a
để z
. Tuy nhiên, vì _
có mã ký tự cao hơn 0
, bạn gặp lỗi.
Trong trường hợp của bạn, chỉ cần thoát nó: \-
. Điều này được phân tích cú pháp là ký tự -
.
thử điều này:
val.replace(/[^a-zA-Z_0-9-]/g, '');
tôi sẽ thích regex này:
val.replace(/[^\w-]+/gi, "");
Bạn cần phải thoát khỏi "-"
val.replace(/[^a-zA-Z_\-0-9]/g, '')
Không chỉ, nó được coi là chữ '-' ở bất cứ nơi nào nó không thể tạo thành một phạm vi, ví dụ: bên cạnh một lớp ký tự viết tắt như trong '[A-Z- \ s- \ d]'. –
$(this).val($(this).val().replace(/[^a-zA-Z_0-9-]/g, ''));
Vui lòng chỉnh sửa với nhiều thông tin hơn. Các câu trả lời chỉ có mã và "dùng thử" này không được khuyến khích, bởi vì chúng không chứa nội dung có thể tìm kiếm được và không giải thích tại sao một người nào đó nên "thử cái này". – Paritosh
- 1. Phạm vi không hợp lệ của regex Javascript trong lớp nhân vật
- 2. PHP nhân vật không hợp lệ lỗi
- 3. "phạm vi ra khỏi trật tự trong lớp nhân vật" trong PHP regex?
- 4. Phạm vi ra khỏi trật tự trong lớp nhân vật trong javascript
- 5. Phạm vi Phiên bản OSGI Hợp lệ
- 6. Lỗi về nhân vật XML không hợp lệ trên Java
- 7. Phạm vi hợp lệ của rowid SQLite?
- 8. Ruby/Regex Lỗi: cảnh báo: lớp nhân vật có phạm vi trùng lặp
- 9. Phạm vi giá trị gumpy hợp lệ
- 10. Phạm vi của UTF-8 nhân vật trong C++ 11 Regex
- 11. RoR lớp nhân vật regex
- 12. php mail() chức năng thay đổi nhân vật và loại bỏ vi phạm trở lại
- 13. StringTemplate nhân vật không hợp lệ '<' khi đọc mẫu XML
- 14. Làm cách nào để xác định liệu một nhân vật có nằm trong phạm vi của Clojure không?
- 15. 'String chứa một nhân vật không hợp lệ' khi sử dụng document.createElement()
- 16. Phạm vi trong các lớp học coffeescript
- 17. Phạm vi phụ thuộc cho trình điều khiển Derby JDBC trong phạm vi tích hợp (cayenne)
- 18. Phạm vi ươm trong constructor của lớp cha PHP
- 19. "Quá nhiều nhân vật trong nhân vật lỗi đen"
- 20. Tạo phạm vi màu trong Python
- 21. Strange Lỗi Phân tích XML: dòng 1, nhân vật 2038, bất hợp pháp xml nhân vật
- 22. Đúc một số ngoài phạm vi đến một enum trong C# không tạo ra ngoại lệ
- 23. Postgres regex: Hành vi của \ s và \ S và lớp nhân vật có vẻ sai
- 24. Nhân vật 3D/Người tạo mô hình
- 25. Tạo một phạm vi ngày
- 26. Vi phạm truy cập ngoại lệ Java?
- 27. Shortcut để tạo nhân vật mảng
- 28. ManagementException - Lớp không hợp lệ
- 29. Haskell - không trong phạm vi
- 30. Phạm vi có thể phù hợp trong Scala không?
Dấu gạch chéo ngược thoát nhân vật bên trong một danh sách khung không được phép trong tiêu chuẩn POSIX regex, vì vậy tôi muốn thận trọng để sử dụng nó. –
@SimonRichter: Các hương vị regex JavaScript có nguồn gốc từ Perl, không POSIX. Backslash escaping hoạt động tốt (nhưng di chuyển dấu gạch nối đến cuối là neater). –