ホームページ > バックエンド開発 > PHPチュートリアル > 正規表現によるレジストリ検証と一般的に使用される検証例を共有する

正規表現によるレジストリ検証と一般的に使用される検証例を共有する

零下一度
リリース: 2023-03-14 07:34:01
オリジナル
1929 人が閲覧しました

正则表达式看起来好像是一大推符号组成的,让人很是头大,我想信很多人刚来时看的时候头疼,我也是的。但是不学又不行,这个是很重要的东西,今天就在这里个大家总结了一些分享正则表达式注册表验证和一些常用的校验实例。

正则表达式

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式目的

1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);

2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。

正则表达式的特点是

1.灵活性、逻辑性和功能性非常的强;

2.可以迅速地用极简单的方式达到字符串的复杂控制;

3.对于刚接触的人来说,比较晦涩难懂。

吾尝终日而思矣 不如须臾之所学也,所以学习这个要持之以恒。

注册表验证

1.获取id

function $(id){
  return document.getElementById(id);
}
ログイン後にコピー

2.验证姓名


function checkName(){
  //获取值
  var username=$('user').value;
  //判断不能为空
  if(username==''){
    $('s1').innerHTML='用户名不能为空';
    return false;
  }
  //正则表达式
  var reg=/^[a-zA-Z][a-zA-Z0-9]{4,9}$/;
  //检测输入内容是否匹配正则表达式
  if(!reg.test(username)){
    $('s1').innerHTML='用户名必须是5-10位数字或字母组成,开头不能是数字';
    return false;
  }
  //匹配,返回空
    $('s1').innerHTML='';
    return true;
}
ログイン後にコピー

备注:s1为判断提示内容,添加在输入框后

3.验证密码


function checkPwd(){
  //获得值
    同上…
  //判断不能为空
    同上…
  //正则表达式
  var reg=/^\S{6,}$/;
  //检测输入内容是否匹配正则表达式
  if(reg.test(password)==false){
    $('s2').innerHTML='密码必须是6位以上';
    return false;
  }
  //匹配,返回空
    同上…
}
ログイン後にコピー

4.验证邮箱


function checkEmail(){
  //获得值
    同上…
  //判断不能为空
    同上…
  //正则表达式
  var reg=/^\w+@\w+\.com|cn|net$/;      
  //检测输入内容是否匹配正则表达式
  if(!reg.test(email)){
    $('s3').innerHTML='邮箱不合法';
    return false;
  }
  //匹配,返回空
    同上…
}
ログイン後にコピー

5.验证手机号


function checkTel(){
  //获得值
    同上…
  //判断不能为空
    同上…
  //正则表达式
  var reg=/^1[34578]\d{9}$/;     
  //检测输入内容是否匹配正则表达式
  if(!reg.test(tel)){
    $('s4').innerHTML='手机号码不合法';
    return false;
  }
  //匹配,返回空
    同上…
}
ログイン後にコピー

6.验证身份证号

function checkCid(){
  //获得值
    同上…
  //判断不能为空
    同上…
  //正则表达式
  var reg=/^\d{15}$|^\d{17}\d|x$/;     
  //检测输入内容是否匹配正则表达式
  if(!reg.test(cid)){
    $('s5').innerHTML='身份证不合法';
    return false;
  }
  //匹配,返回空
    同上…
}
ログイン後にコピー

7.验证QQ号

function checkQQ(){
  //获得值
    同上…
  //判断不能为空
    同上…
  //正则表达式
  var reg=/^[1-9]\d{7,10}$/;     
  //检测输入内容是否匹配正则表达式
  if(!reg.test(qq)){
    $('s6').innerHTML='QQ必须是8到11数字组成,开头不能是0';
    return false;
      }
  //匹配,返回空
    同上…
}
ログイン後にコピー

8.检测所有条件

function checkAll(){
  if(checkName()&&checkPwd()&&checkEmail()&&checkTel()&&checkCid()&&checkQQ()){
    return true;
  }else{
    return false;
  }
}
ログイン後にコピー

常用的正则表达式校验

  1. 校验密码强度

密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。

/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/
ログイン後にコピー

2. 校验中文

字符串仅能是中文。

/^[\\u4e00-\\u9fa5]{0,}$/
ログイン後にコピー

3. 由数字、26个英文字母或下划线组成的字符串

/^\\w+$/
ログイン後にコピー

4. 校验E-Mail 地址

同密码一样,下面是E-mail地址合规性的正则检查语句。

/[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?/
ログイン後にコピー

5. 校验身份证号码

下面是身份证号码的正则校验。15 或 18位。

15位:

/^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$/
ログイン後にコピー

18位:

 /^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$/
ログイン後にコピー

6. 校验日期

“yyyy-mm-dd“格式的日期校验,已考虑平闰年。

 /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/
ログイン後にコピー

7. 校验金额

金额校验,精确到2位小数。

/^[0-9]+(.[0-9]{2})?$/
ログイン後にコピー

8. 校验手机号

下面是国内 13、15、18开头的手机号正则表达式。(可根据目前国内收集号扩展前两位开头号码)

/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$/
ログイン後にコピー

9. 判断IE的版本

IE目前还没被完全取代,很多页面还是需要做版本兼容,下面是IE版本检查的表达式。

/ ^.*MSIE[5-8](?:\\.[0-9]+)?(?!.*Trident\\/[5-9]\\.0).*$/
ログイン後にコピー

10. 校验IP-v4地址

IP4 正则语句。

/\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b/
ログイン後にコピー

以上が正規表現によるレジストリ検証と一般的に使用される検証例を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート