Tôi đang cố gắng xác thực biểu mẫu bằng cụm từ thông dụng được tìm thấy tại đây http://regexlib.com/. Những gì tôi đang cố gắng làm là lọc ra tất cả các ký tự ngoại trừ a-z, dấu phẩy và dấu nháy đơn. Nếu tôi sử dụng mã này:Thoát dấu nháy đơn trong regex?
<cfinput name="FirstName" type="text" class="fieldwidth" maxlength="90" required="yes" validateat="onsubmit,onserver" message="Please ensure you give your First Name and it does not contain any special characters except hyphens or apostrophes." validate="regular_expression" pattern="^([a-zA-Z'-]+)$" />
Tôi gặp lỗi sau: Chưa khớp [] trong biểu thức. Tôi đã tìm ra điều này liên quan đến các dấu nháy đơn vì nó hoạt động nếu tôi sử dụng mã này (nhưng không cho phép dấu nháy):
<cfinput name="FirstName" type="text" class="fieldwidth" maxlength="90" required="yes" validateat="onsubmit,onserver" message="Please ensure you give your First Name and it does not contain any special characters except hyphens or apostrophes." validate="regular_expression" pattern="^([a-zA-Z-]+)$" />
Vì vậy, tôi đang tự hỏi là có một số cách đặc biệt để thoát khỏi dấu nháy khi sử dụng biểu thức thông thường?
EDIT
Tôi nghĩ rằng tôi đã tìm thấy nơi mà vấn đề đang được gây ra (nhờ xanatos), không chắc chắn làm thế nào để sửa chữa nó. Về cơ bản CF đang tạo ra một lĩnh vực tiềm ẩn để xác nhận lĩnh vực này như sau:
<input type='hidden' name='FirstName_CFFORMREGEX' value='^([a-zA-Z'-]+)$'>
Bởi vì nó được sử dụng dấu nháy đơn chứ không phải là dấu bài phát biểu quanh giá trị, nó được giải thích dấu nháy đơn như sự kết thúc của giá trị.
Các dấu nháy đơn là một nhân vật đặc biệt và cần phải được thoát khỏi văn bản chuẩn bằng cách đặt trước với ' \ ', hãy thử mẫu = "^ ([a-zA-Z \' -] +) $" HTH – John
@John Bạn có chắc không? Và nó có nghĩa là gì? Làm thế nào nó được sử dụng trong ngôn ngữ Regex? – xanatos
Tôi nói 'thử' vì vậy tôi không chắc chắn, regex có nhiều hương vị, và thay thế biểu thức được gắn thẻ là trong thực tế, vắng mặt từ chương trình Word 2002 của tôi. – John