Tôi muốn xác thực văn bản của QLineEdit bằng cụm từ thông dụng. Nó cho phép các ký tự từ a đến z cộng với A đến Z cộng với ký tự Thổ Nhĩ Kỳ (ğüşöçİĞÜŞÖÇ) cộng với số từ 0 đến 9. Tôi googled về vấn đề của tôi và tìm thấy hai giải pháp nhưng không ai làm việc cho tôi. Trong một giải pháp nó nói "bao gồm các nhân vật Thổ Nhĩ Kỳ trong regexp" và trong một khác nó nói "unicodes sử dụng các ký tự tiếng"Nhân vật Thổ Nhĩ Kỳ Qt trong cụm từ thông dụng
Dưới đây là hai biểu thức reqular
QRegExp exp = QRegExp("^[a-zA-Z0-9ğüşöçİĞÜŞÖÇ]+$");
QRegExp exp = QRegExp("^[a-zA-Z0-9\u00E7\u011F\u0131\u015F\u00F6\u00FC\u00C7\u011E\u0130\u015E\u00D6\u00DC]+$");
Cả một trong những biểu reqular trên có thể xác nhận tên 'İSMAİL'. Ngoài ra tôi đã thử một văn bản chỉ chứa các ký tự Thổ Nhĩ Kỳ ('ğüşöçİĞÜŞÖÇ') nhưng không thể xác thực được. Khi tôi xóa ký tự 'İ' khỏi cả hai văn bản, chúng có thể được xác thực. Tôi đoán vấn đề có thể liên quan đến ký tự 'İ'.
Tôi làm cách nào để khắc phục sự cố?
Lưu ý: Chúng tôi đang sử dụng Qt 4.6.3 trong dự án của mình.
Nhìn vào đề xuất ban đầu của bạn, '^ [a-zA-Z0-9ğüşöçİĞÜŞÖÇ] + $' hoạt động tốt cho tôi trong tất cả các đối sánh regex tôi đã thử (ví dụ: http://www.regex101.com/r/gR2xB2) . Bạn có chắc chắn vấn đề không phải ở nơi khác? – mart1n