Javascript Regex问题-用户名
Javascript Regex Issue - UserName
问题语句。
用户名应介于6到32个字母数字字符之间。空格是允许的,除非它是第一个或最后一个字符。不要将两个以上相同的字符组合在一起。允许使用以下特殊字符:@#$。用户名区分大小写
我们目前拥有的Regex是
(?!.*(.)'1{2})^[^'s]([0-9]*)([A-Za-z]+)('w|'@|'#|'$|'s|'-)*[^'s]
在这些测试用例中运行良好
eldricdsouza
eldric1dsouza
eldric@dsouza
eldric#dsouza
eldric$dsouza
eldric dsouza
eldric
eldricdsouza1
!eldric123#
eeeldric123#
eellldric123#
!user1405!
user@1405!
user@1405#$
user@1405###
user@1405###$
user@144405##$
user@14405##$
这些都不太好用。。。
5634user@14405##$ ---gave an error...when this is valid.
usereldric_ --- underscore is not valid
usereldric-dsouza --- hyphen is not valid.
5634user@14405##$ ---gave an error...when this is valid.
usereldric_ --- underscore is not valid
usereldric-dsouza --- hyphen is not valid.
或者这个。。。
UseerrNaame78
您可以使用此模式使所有字符串中的相同字符不超过2个:
^(?=[a-zA-Z])(?:(['w@#$-]| (?!$))(?!.*'1.*'1)){6,32}$
但要想背靠背不超过2个相同的字符,可以使用:
^(?=[a-zA-Z])(?:(['w@#$-]| (?!$))(?!'1'1)){6,32}$
满足您需求的正则表达式是:
/^([a-zA-Z@#$])(?!'1)(?:([a-zA-Z@#$ ])(?!'2)){4,30}[a-zA-Z@#$]$/
演示:http://regex101.com/r/dS9kE2
一些解释:
(?!'1)
-(或2)向前看,下一个字符与上一个匹配的字符不同[a-zA-Z@#$]
-第一个和最后一个位置的批准字符类别[a-zA-Z@#$ ]
-中间已批准字符的类别{4,30}
中间部分必须包含(6-2)到(32-2)个字符
相关文章:
- 将jQuery转换为用户脚本的普通Javascript时遇到问题
- 用户使用浏览器时SPA中的问题's的后退或刷新功能
- 当前用户顶部列表的曲目快照出现间歇性问题
- mongodb用户配置文件添加输入时出现问题
- Safari存在文本输入问题,用户输入时会选择文本,导致文本丢失
- 让用户通过javascript访问cookie是一个安全问题
- 解析云代码-在“”中查询用户问题;正常的“;作用
- 敲除-将用户输入添加到表中的问题
- Acrobat DC 应用程序和用户 JavaScript 文件夹问题
- 两个用户通过 websocket 编辑输入时出现问题
- 条带用户令牌问题
- 使用 javascript 创建用户帐户时存在 Firebase 安全问题
- PHP 中的用户时区问题修复
- 我收到一个错误:类型错误:在使用解析 API 更新用户对象时未定义 e.changes.如何解决这个问题
- 在将用户输入转换为图形栏时遇到问题
- MVC - 用户双击“提交”按钮时出现问题
- 通过在 JavaScript 中从用户那里获取值来加载数据子集时出现问题
- 阻止用户在 AJAX 帖子中输入空字符串的问题
- 如何使用WebKit开发工具调试JavaScript中的用户输入问题
- 解析服务器推送通知到特定用户问题