正規表現を使用してフォームを検証しようとしています(http://regexlib.com/)。私がしようとしているのは、z、カンマ、アポストロフィを除くすべての文字を除外することです。このコードを使用する場合:正規表現でアポストロフィをエスケープしますか?
<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'-]+)$" />
次のエラーが表示されます。私はこのコードを使用している場合、それは動作しますので、これはアポストロフィに関連考え出した(しかし、アポストロフィを許可していません):
<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-]+)$" />
だから私は思ったんだけど、正規表現を使用する際にアポストロフィをエスケープするためにいくつかの特別な方法がありますか?
EDIT
私は問題は(ザナトスのおかげで)引き起こされている場合、私が見つけたと思いますが、それを修正する方法がわかりません。基本的にCFは、次のようにフィールドを検証するために隠しフィールドを生成している:
<input type='hidden' name='FirstName_CFFORMREGEX' value='^([a-zA-Z'-]+)$'>
それは価値の周りに単一のアポストロフィではなく、音声マークを使用しているので、それは価値の終わりとしてアポストロフィを解釈しています。
(それは単一引用符のためのコードです)
\x27
で見積もりを交換してみてくださいアポストロフィは、「特殊文字であるとして付けることによって、標準のテキストから脱出する必要があります\ '、try pattern = "^([a-zA-Z \' - ] +)$" HTH – John
@John本当ですか?それはどういう意味ですか?どのようにそれは正規表現の "言語"で使用されていますか? – xanatos
私は 'try'と言っていますので、正規表現には多くの味があり、タグ付き式を置き換えることはWord 2002のプログラムにはありません。 – John