Does RegularExpressionValidator use other flavor than Regex?

前端 未结 2 571
梦如初夏
梦如初夏 2020-12-11 06:23

I want to do preliminary check if entered string looks like Vehicle Identification Number (VIN). I know what it consists of 17 letters and digits, but letters I, O and Q are

相关标签:
2条回答
  • 2020-12-11 06:34

    The RegularExpressionValidator also supports client-side validation using JavaScript, where the JavaScript Regex engine is used. The difference you see is the difference between the JavaScript and the .NET regex implementation. You can disable client-side validation and thus force the validator to use the .NET regex engine, at the price of the additional post-back.

    0 讨论(0)
  • 2020-12-11 06:44

    Not a direct answer but just an obvious remark:

    If for some reason Character class subtraction is not supported, you always can use as a workaround:

    ^[0-9A-HJ-NPR-Z]{17}$
    

    To document what I put in the comments of this question:

    The article How to: Validate Against Patterns for ASP.NET Server Controls, does mention that the javascript client-side regex validator does not know "character class subtraction"

    As mentionned in RegularExpressionValidator Class .Net documentation:

    Both server-side and client-side validation are performed unless the browser does not support client-side validation or client-side validation is explicitly disabled (by setting the EnableClientScript property to false).

    The regular-expression validation implementation is slightly different on the client than on the server. On the client, JScript regular-expression syntax is used.
    On the server, System.Text.RegularExpressions..::.Regex syntax is used.
    JScript regular expression syntax is a subset of System.Text.RegularExpressions..::.Regex syntax.
    It is therefore recommended that JScript regular-expression syntax should be used in order to yield the same results on both the client and the server.

    Another illustration of that side-effect (different regex flavors between server and client sides) is mentionned in RegularExpressionValidator woes blog entry.

    0 讨论(0)
提交回复
热议问题