判断用户名和密码正则表达式

<?php
$string[] = 'lewis_0913';
$string[] = '刘易斯_0913';
$string[] = 'lewis&&12';
$string[] = '^&*_123';
$string[] = '123刘易斯';

$usernamePattern = '/^[_a-zA-Z0-9\x{4e00}-\x{9fa5}]{3,16}$/u';
$passwordPattern = '/[\x{4e00}-\x{9fa5}]{3,16}/u';

foreach( $string as $element )
{
preg_match( $usernamePattern , $element , $matches[] );
}

foreach( $string as $element )
{
preg_match( $passwordPattern , $element , $matches2[] );
}

var_dump( $matches );
echo '<br>';
var_dump( $matches2 );
?>


输出
array(5) { [0]=> array(1) { [0]=> string(10) "lewis_0913" } [1]=> array(1) { [0]=> string(14) "刘易斯_0913" } [2]=> array(0) { } [3]=> array(0) { } [4]=> array(1) { [0]=> string(12) "123刘易斯" } } 
array(5) { [0]=> array(0) { } [1]=> array(1) { [0]=> string(9) "刘易斯" } [2]=> array(0) { } [3]=> array(0) { } [4]=> array(1) { [0]=> string(9) "刘易斯" } }


$usernamePattern = '/^[_a-zA-Z0-9\x{4e00}-\x{9fa5}]{3,16}$/u';

\x{4e00}-\x{9fa5} 表示中文字
末尾的/u (PCRE_UTF8)
此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
正则表达式是一种用于匹配字符串模式的工具。在JavaScript中,我们可以使用正则表达式来验证用户名密码的格式是否符合我们的要求。 对于用户名的验证,我们可以使用以下正则表达式:^[a-zA-Z0-9_-]{4,16}$ 解析: - ^ 表示字符串的开头 - [a-zA-Z0-9_-] 表示可以包含大小写字母、数字、下划线和短横线 - {4,16} 表示用户名的长度必须在4到16个字符之间 - $ 表示字符串的结尾 对于密码的验证,我们可以使用以下正则表达式:^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$ 解析: - ^ 表示字符串的开头 - (?=.*[a-z]) 表示必须包含至少一个小写字母 - (?=.*[A-Z]) 表示必须包含至少一个大写字母 - (?=.*\d) 表示必须包含至少一个数字 - [a-zA-Z\d]{8,} 表示密码的长度必须至少为8个字符,可以包含大小写字母和数字 - $ 表示字符串的结尾 通过使用以上正则表达式,我们可以判断用户输入的用户名密码是否符合规定的格式。例如,我们可以使用JavaScript中的.test方法来检测一个字符串是否符合正则表达式的模式。 示例代码: ```javascript var username = "john_doe123"; var password = "passWord123"; var usernamePattern = /^[a-zA-Z0-9_-]{4,16}$/; var passwordPattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/; console.log(usernamePattern.test(username)); // true console.log(passwordPattern.test(password)); // true ``` 通过以上代码,我们可以看到用户名密码的验证结果都为true,说明它们符合正则表达式的模式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值