您好!欢迎进入重庆网站建设公司官方网站 友情链接申请:qq664865128 服务邮箱:664865128@qq.com

js正则表达式使用(几条常用的JavaScript正则表达式)

时间:2023-07-18  发布:小宽

  js正则表达式使用

  1.定义正则表达式:

  a.普通方式:var reg=/表达式/附加参数

  附件参数:

  g:代表可以进行全局匹配。

  i:代表不区分大小写匹配。

  m:代表可以进行多行匹配。

  上面三个参数,可以任意组合,代表复合含义,当然也可以不加参数。

  例子:

  var reg=/a*b/;

  var reg=/abc+f/g;

  b.构造函数方式:var reg=new RegExp(“表达式”,”附加参数”);

  例子:

  var reg=new RegExp(“a*b”);

  var reg=new RegExp(“abc+f”,”g”);

  两者区别:

  普通方式中的表达式必须是一个常量字符串,而构造函数中的表达式可以是常量字符串,也可以是一个js变量,例如根据用户的输入来作为表达式参数等等:var reg=new RegExp(document.forms[0].exprfiled.value,”g”);

  2.表达式操作

  1)表达式操作,在这里是指和表达式相关的方法,我们将介绍六个方法。

  2)表达式对象(RegExp)方法:

  1>exec(str),返回str中与表达式相匹配的第一个字符串,而且以数组的形式表现,当然如果表达式中含有捕捉用的小括号,则返回的数组中也可能含有()中的匹配字符串,例如:

  var regx=//d+/;

  var rs=regx.exec(“3432ddf53”);

  返回的rs值为:{3432}

  var regx2=new RegExp(“ab(/d+)c”);

  var rs2=regx2.exec(“ab234c44”);

  返回的rs值为:{ab234c,234}

  另外,如果有多个合适的匹配,则第一次执行exec返回一个第一个匹配,此时继续执行exec,则依次返回第二个第三个匹配。例如:

  var regx=/user/d/g;

  var rs=regx.exec(“ddduser1dsfuser2dd”);

  var rs1=regx.exec(“ddduser1dsfuser2dd”);

  则rs的值为{user1},rs的值为{rs2},当然注意regx中的g参数是必须的,否则无论exec执行多少次,都返回第一个匹配。后面还有相关内容涉及到对此想象的解释。

  2>test(str),判断字符串str是否匹配表达式,返回一个布尔值。例如:

  var regx=/user/d+/g;

  var flag=regx.test(“user12dd”);

  flag的值为true。

  3)String对象方法

  1>match(expr),返回与expr相匹配的一个字符串数组,如果没有加参数g,则返回第一个匹配,加入参数g则返回所有的匹配

  例子:

  var regx=/user/d/g;

  var str=“user13userddduser345”;

  var rs=str.match(regx);

  rs的值为:{user1.user3}

  2>search(expr),返回字符串中与expr相匹配的第一个匹配的index值。

  例子:

  var regx=/user/d/g;

  var str=“user13userddduser345”;

  var rs=str.search(regx);

  rs的值为:0

  3>replace(expr,str),将字符串中匹配expr的部分替换为str。另外在replace方法中,str中可以含有一种变量符号$,格式为$n,代表匹配中被记住的第n的匹配字符串(注意小括号可以记忆匹配)。

  例子:

  var regx=/user/d/g;

  var str=“user13userddduser345”;

  var rs=str.replace(regx,”00”);

  rs的值为:003userddd0045

  例子2:

  var regx=/u(se)r/d/g;

  var str=“user13userddduser345”;

  var rs=str.replace(regx,”$1”);

  rs的值为:se3userdddse45

  对于replace(expr,str)方法还要特别注意一点,如果expr是一个表达式对象则会进行全局替换(此时表达式必须附加参数g,否则也只是替换第一个匹配),如果expr是一个字符串对象,则只会替换第一个匹配的部分,例如:

  var regx=“user”

  var str=“user13userddduser345”;

  var rs=str.replace(regx,”00”);

  rs的值为: 0013userddduser345

  4>split(expr),将字符串以匹配expr的部分做分割,返回一个数组,而且表达式是否附加参数g都没有关系,结果是一样的。

  例子:

  var regx=/user/d/g;

  var str=“user13userddduser345”;

  var rs=str.split(regx);

  rs的值为:{3userddd,45}

  几条常用的JavaScript正则表达式

  在做项目或者代码编写过程中,一般会遇到验证电话、邮箱等格式是否正确合法的问题。通常我们会使用正则表达式,自己写很麻烦,且正则表达式又不是那么容易记住。所以现在分享几条常用的正则表达式,需要的时候直接复制即可。

  // uri正则表达式

  const urlRegex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;

  // 邮箱正则表达式

  const emailRegex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2.3}){1.2})$/;

  // 手机号码正则表达式

  const mobileRegex = /^1[0-9]{10}$/;

  // 电话号码正则表达式

  const phoneRegex = /^([0-9]{3.4}-)?[0-9]{7.8}$/;

  // URL地址正则表达式

  const urlRegex = /^http[s]?:\/\/.*/;

  // 小写字母正则表达式

  const lowerCaseRegex = /^[a-z]+$/;

  // 大写字母正则表达式

  const upperCaseRegex = /^[A-Z]+$/;

  // 大小写字母正则表达式

  const alphabetsRegex = /^[A-Za-z]+$/;

  // 身份证号码正则表达式

  const cardidRegex = /(^\d{18}$)|(^\d{17}(\d|X|x)$)/;

  // 判断姓名是否正确

  const regNameRegex = /^[\u4e00-\u9fa5]{2.4}$/;

  // 判断是否为整数

  const numRegex = /[^\d.]/g;

  // 判断是否为小数

  const numordRegex = /[^\d.]/g;

  // 数字或者小数

  const numberRegex = /^[0-9]+(\.[0-9]{1.3})?$/;

本文由重庆网站建设编辑,转载请注明出处:https://www.cq-wzjs.com.cn/fuwuzixun/zhengzhanyouhua/4817.html

关于我们 About us

您可以在线咨询...

158-023-10923

158-023-10923

重庆市沙坪坝区西双大道19号7幢3-4

Copyright © 2008-2023 睿喆诚数字传媒(重庆)有限公司 版权所有 渝ICP备2022008152号-1

在线客服
免费咨询热线
158-023-10923