2011-09-23 6 views
2

私はregexを使用して電子メールの検証に迷惑な問題を抱えています。電子メールアドレスを検証しようとすると、IE7でRegExの問題が発生する

^\s*[a-zA-Z0-9_\+-]{1,63}(\.[a-zA-Z0-9_\+-]{1,63})*@(?=[a-zA-Z0-9-\.]{0,255}\.?\s*$)[a- zA-Z0-9-]{1,63}(\.[a-zA-Z0-9-]{1,63}){0,126}\.([a-zA-Z]{2,63})\.?\s*$ 

は今、これはIE8でオールライトワークス - >例えば、最新のMozillaとOperaのバージョン: は、私は、Webページ上の電子メールアドレスを検証するために、この正規表現を使用しています。 私はすでにこの記事を読んでいます:http://blog.stevenlevithan.com/archives/regex-lookahead-bug

でも、私はそれを使用していましたか?どんなRegExの教祖も私が間違っていることを考えている。

^\s*[a-zA-Z0-9_\+-]{1,63}(\.[a-zA-Z0-9_\+-]{1,63})*@(?=.*[a-zA-Z0-9-\.]{0,255}\.*?\s*$)[a- zA-Z0-9-]{1,63}(\.[a-zA-Z0-9-]{1,63}){0,126}\.([a-zA-Z]{2,63})\.*?\s*$ 

しかしなしの成功を収めて: 私もこれを試してみました。

+1

ルックアヘッドの機能は何ですか?この場合、私は有用性を見ません。ちょうどhttp://www.regular-expressions.info/email.htmlのようなインターネットから電子メールの正規表現を貼り付けてください。 – Gerben

答えて

0

は、右の意図的な-

@(?=[a-zA-Z0-9-\.]{0,255}\.?\s*$)[a- zA-Z0-9-]{1,63} 

の最後のグループ内のスペースですか?これはおそらく保守的なエンジンでは機能しません。

+0

このサイトには私のコピー貼り付けエラーはありません:) – user960869

+0

この場合 - あなたは編集できますか質問はどうですか? – krlmlr

0

私は、この正規表現を持って、仕事の権利を行うようだ:

const string myRegex = @"^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@" 
     + @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\." 
     + @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|" 
     + @"([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$"; 
0

は、あなたが完全に先読みを削除しようとしたことがありますか?私はそれがあなたの正規表現では役に立たない@Gerbenに同意します:

^\s*[a-zA-Z0-9_\+-]{1,63}(\.[a-zA-Z0-9_\+-]{1,63})*@[a-zA-Z0-9-]{1,63}(\.[a-zA-Z0-9-]{1,63}){0,126}\.([a-zA-Z]{2,63})\.?\s*$ 
関連する問題