注意:JavaScript的正则表达式跟.net的正则表达式有些差异。
2007-12-17 11:21
344 查看
这两天,CSDN出现了有人注册中文ID的情况,CSDN 是不允许正常途径注册中文ID的,为此在注册页面专门用 asp:regularexpressionvalidator 作了限制,服务器端专门用 IsValid 作了判断。
通过联系网友,网友反馈是:是通过禁用客户端禁用所有js来实现注册中文名的。但我们是服务器端有校验的呀。一直查下去,发现是正则表达式写错了。写成了 ValidationExpression="\w+"
如下禁用所有JS。
![](http://blog.joycode.com/images/blog.joycode.com/ghj/937/r_error.GIF)
查询MSDN的帮助,对 \w 有以下描述:
与任何单词字符匹配。等效于 Unicode 字符类别 [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]。如果用 ECMAScript 选项指定了符合 ECMAScript 的行为,则 \w 等效于 [a-zA-Z_0-9]。
晕倒,我以前看的几本书可没有这么说。反查一些关于正则表达式的书,晕倒,很多在对 \w 进行说明的时候,写得就是匹配任一单词字符,包括 A-Z、a-z、0-9和下滑线_ ,而没有提到 Unicode这部分。晕倒,被书害了。
而上面的说法,是JS的说法,以前学习这部分的时候,只是注意看书本内容,没注意看MSDN,害的出了这么一个大漏洞。
把正则表达式修改为: ^[a-zA-Z0-9_]+$ 就修正了这个问题。
置于为啥禁用掉JS,就可以注册中文,原因如下:
如果采用 \w+ 来校验的话:
如果客户端没有禁用JS,在js 这一层的校验,其实是校验的是 [a-zA-Z_0-9] ,
如果用户禁用了JS,在服务器端,它实际是校验的 [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]
这样服务器端中文的用户名也校验通过了。
置于在CSDN注册的中文ID,按照CSDN的制度,所有利用非正常途径、CSDN漏洞获得的利益,CSDN都不给与保护。除了少数几个帮助CSDN解决问题的帐号被保留外,其他都会被删除。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=76967
通过联系网友,网友反馈是:是通过禁用客户端禁用所有js来实现注册中文名的。但我们是服务器端有校验的呀。一直查下去,发现是正则表达式写错了。写成了 ValidationExpression="\w+"
如下禁用所有JS。
查询MSDN的帮助,对 \w 有以下描述:
与任何单词字符匹配。等效于 Unicode 字符类别 [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]。如果用 ECMAScript 选项指定了符合 ECMAScript 的行为,则 \w 等效于 [a-zA-Z_0-9]。
晕倒,我以前看的几本书可没有这么说。反查一些关于正则表达式的书,晕倒,很多在对 \w 进行说明的时候,写得就是匹配任一单词字符,包括 A-Z、a-z、0-9和下滑线_ ,而没有提到 Unicode这部分。晕倒,被书害了。
而上面的说法,是JS的说法,以前学习这部分的时候,只是注意看书本内容,没注意看MSDN,害的出了这么一个大漏洞。
把正则表达式修改为: ^[a-zA-Z0-9_]+$ 就修正了这个问题。
置于为啥禁用掉JS,就可以注册中文,原因如下:
如果采用 \w+ 来校验的话:
如果客户端没有禁用JS,在js 这一层的校验,其实是校验的是 [a-zA-Z_0-9] ,
如果用户禁用了JS,在服务器端,它实际是校验的 [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]
这样服务器端中文的用户名也校验通过了。
置于在CSDN注册的中文ID,按照CSDN的制度,所有利用非正常途径、CSDN漏洞获得的利益,CSDN都不给与保护。除了少数几个帮助CSDN解决问题的帐号被保留外,其他都会被删除。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=76967
相关文章推荐
- 注意:JavaScript的正则表达式跟.net的正则表达式有些差异。 -zz
- 注意:JavaScript的正则表达式跟.net的正则表达式有些差异。
- JavaScript的正则表达式跟.net的正则表达式有些差异。
- 【JavaScript】正则表达式验证邮箱的注意事项
- .net中正则表达式的客户端验证--javascript
- javascript中正则表达式和ruby中的一点差异
- .net中正则表达式的客户端验证--javascript
- JavaScript正则表达式的浏览器的差异
- javascript中正则表达式和ruby中的一点差异
- .net中正则表达式的客户端验证--javascript
- javascript中正则表达式和ruby中的一点差异
- .NET写的过程中总结的正则表达式
- 用JavaScript实现form表单的数据提交--使用正则表达式对数据判断
- javascript中的正则表达式
- WEB开发时常用的正则表达式(PHP和Javascript)
- JavaScript 正则表达式上——基本语法
- JavaScript中的正则表达式解析
- javascript 正则表达式
- .net 中常用到的一些正则表达式。
- .net 正则表达式验证email