We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
/^^hello\b(?!\w)/.test("hello "); // true
位置匹配^重复匹配一个位置,相当于一个位置匹配; 位置匹配\b和(?!\w)都是对同一个位置进行匹配,字符b后面的位置即是个单词结尾又是非单词字符(本例是空格字符)的前面
^
\b
(?!\w)
b
// 规则1 = 长度6到15位,必须是数字,字母,下划线,感叹号,中划线 /^[0-9a-zA-Z_!-]{6,15}$/.test('abc123'); // true,很容易实现 // 规则2 = 规则1 + 必须包含大写字母 /(?=.*[A-Z])^[0-9a-zA-Z_!-]{6,15}$/.test('abc123'); // false /(?=.*[A-Z])^[0-9a-zA-Z_!-]{6,15}$/.test('abC123'); // true // 规则3 = 规则2 + 必须包含下划线 /(?=.*_)(?=.*[A-Z])^[0-9a-zA-Z_!-]{6,15}$/.test('abC123'); // false /(?=.*_)(?=.*[A-Z])^[0-9a-zA-Z_!-]{6,15}$/.test('abC123_'); // true
原理就是通过找满足条件的位置来判断目标字符串是否符合指定的规则。规则2(规则3同理)的正则表达式相当于对起始位置添加了多个匹配条件。 6. 回溯 为了判断是否匹配完成,进行了一些尝试。尝试的副作用就是造成回溯(造成匹配位置倒退的行为)。 回溯会影响性能,写正则尽量规避造成回溯。
The text was updated successfully, but these errors were encountered:
https://segmentfault.com/a/1190000015723611
Sorry, something went wrong.
No branches or pull requests
可以包成分组进行匹配。
位置匹配
^
重复匹配一个位置,相当于一个位置匹配;位置匹配
\b
和(?!\w)
都是对同一个位置进行匹配,字符b
后面的位置即是个单词结尾又是非单词字符(本例是空格字符)的前面密码字符集一般是有安全要求的,比如:必须包含数字,大小写字母等。可以使用【位置匹配】:
原理就是通过找满足条件的位置来判断目标字符串是否符合指定的规则。规则2(规则3同理)的正则表达式相当于对起始位置添加了多个匹配条件。
6. 回溯
为了判断是否匹配完成,进行了一些尝试。尝试的副作用就是造成回溯(造成匹配位置倒退的行为)。
回溯会影响性能,写正则尽量规避造成回溯。
参考
The text was updated successfully, but these errors were encountered: