JavaScript中正则的使用以及常用的正则表达式

一、正则表达式

(一)、定义

-用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,获取将字符串中符合规则的内容提取出来

(二)、创建正则

第一种方式

var 变量=new RegExp("正则表达式","匹配模式");

使用typeof检查正则对象,会返回object

var reg=new RegExp("a"); 这个正则表达式可以用来检查一个字符串中是否含有a

在构造函数中可以传递一个匹配模式作为第二个参数,可以是

i   忽略大小写

g   全局匹配模式

第二种方式:

var 变量=/正则表达式/匹配模式 */

使用字面量来创建正则表达式

二、正则的语法

(一)、常用语法

1: 使用|表示或者的意思

2: []里的内容也是或的关系 [ab]==a|b

        [a-z] 任意小写字母

        [A-Z] 任意大写字母

        [A-z] 任意字母

        [0-9] 任意数字

3: [^] 除了 查找任何不在方括号之间的字符

<script>
      //第一种创建方式:构造函数创建更加灵活(可以传变量)
      var reg = new RegExp("ab", "i");
      console.log(reg.test("Bcd"));
      /*第二种创建方式: 使用字面量来创建正则表达式(更简单,)
           语法:
               var 变量=/正则表达式/匹配模式 */
      var reg = /ab/i;
      console.log(reg.test("abca"));

      // 语法
      //创建一个正则表达式,检查一个字符串中是否有a或者b
      /* 
          1: 使用|表示或者的意思
          */
      var reg = /a|b|c/i;
      console.log(reg.test("bcd"));

      //创建一个正则表达式检查一个字符串是有有字母
      /* 
        2: []里的内容也是或的关系  [ab]==a|b
        [a-z] 任意小写字母
        [A-Z] 任意大写字母
        [A-z] 任意字母
        [0-9] 任意数字
         */
      reg = /[a-z]/i;

      //检查一个字符串中是否含有abc或adc或aec
      reg = /a[bde]c/; //或b或d或e和a c
      console.log(reg.test("abc"));

      /* 3: [^]  除了 查找任何不在方括号之间的字符   */
      reg = /[^ab]/; //除了a或b,只要有ab以外的存在
      console.log(reg.test("abc")); //true
    </script>

(二)、常用语法二

1:量词

        —通过量词可以设置一个内容出现的次数

         —量词只对它前边的一个内容起作用

         —{n}正好出现n次

         —{m,n}出现m-n次

         —{m,}m次以上

         —+ 至少出现一次,相当于{1,}

         —* 0个或多个,相当于{0,}

         — ? 0个或1个,相当于{0,1}

2: 检查一个字符串中开头,结尾

        ^a 表示开头

        $ 表示结尾

如果在正则表达式中,同时使用^$,则要求字符串必须完全符合正则表达式

<script>
      /* 
        创建一个正则表达式检查一个字符串是否含有aaa
        */
      var reg = /a{3}/; //==/aaa/
      reg = /ab{3}/; //abbb
      reg = /(ab){3}/; //ababab
      reg = /ab{1,3}c/; //b出现1-3次皆可
      reg = /ab+c/; //至少一个b
      reg = /a?bc/; //0个或1个a
      reg = /a*bc/; //有没有a都行
      //console.log(reg.test("bc"));

      /* 
      2: 检查一个字符串中是否以a开头
          ^a 表示开头
          $ 表示结尾
          如果在正则表达式中,同时使用^$,则要求字符串必须完全符合正则表达式
       */

      reg = /^a/; //匹配开头的a
      reg = /a$/; //匹配结尾的a
      reg = /^aa$/;
      reg = /^a|a$/; //以a开头或者以a结尾
      console.log(reg.test("a"));

      /* 
      手机号的规则:
      1:以1开头;
      2:第二位3-9的任意数字;
      3:三位以后任意数字9个;
      ^1 [3-9] [0-9]{9}$
      创建一个正则表达式,用来检查一个字符串是否是一个合法手机号
      */
      var phoneStr = "183o6789012";
      var phoneReg = /^1[3-9][0-9]{9}$/;
      console.log(phoneReg.test(phoneStr));
    </script>

(三)、常用语法三

1: .表示任意字符

2: 在正则表达式中使用\作为转义字符

注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串中转义字符,

如果要使用\则需要使用\\来代替

3:

\w -任意字母,数字,_

\W -除了字母、数字、_

\d -任意数字[0-9]

\D -除了数字[^(0-9)]

\s -空格

\S -除了空格

\b -单词边界

\B -除了单词边界

<script>
       var reg=/\./;// .
       reg=/\\/;// \
       reg=new RegExp("\.")//在字符串中,要用\作为转义字符
      reg=/\W/;
      /*  创建一个正则表达式检查一个字符串中是否有单词child */
      reg=/\bchild\b/;//保证前后都没有,这是独立的单词
      // console.log(reg.test("hello,children"))
      /* 接收一个用户的输入 */
     // var str=prompt("请输入你的用户名:")
     //去除字符串中的空格
      str="   he  llo   ";
    //  str=str.replace(/\s/g,"");
     //去除开头的空格
    //str=str.replace(/^\s*/,"")
     //去掉结尾的空格
     //str=str.replace(/\s*$/,"")
    // str=str.replace(/^\s*|\s*$/g,"");//匹配开头和结尾的空格
     str=str.trim();
      console.log(str);
    </script>

四、正则中表达式 test()

test() 方法是正则表达式的一个方法,用于检测一个字符串是否匹配某个模式.
test 方法检查字符串是否与给出的正则表达式模式相匹配,如果是则返回 true,否则就返回 false。

每个正则表达式都有一个 lastIndex 属性,用于记录上一次匹配结束的位置.

语法:regexp.test(str) 

            var str="a";
           var res=reg.test(str);
            console.log(res);
       console.log(reg.test("cb"))

五、常用的正则表达式

		// 验证帮助
		var verifyUtils = {

			// 验证输入的内容是否是空
			isNull:function(idStr){
				var str = document.getElementById(idStr).value.trim();
				var regex = /\S/;
				if(!regex.test(str)){
					alert("文本框不能为空,请输入内容!");
				}
			
			},

			// 验证输入的字符是否是英文字母
			isLetter:function(idStr){
				var str = document.getElementById(idStr).value.trim();
				var regex = /^[a-zA-Z]+$/;
				if(!regex.test(str)){
					alert("请输入正确的英文字母!");
				}

			//  验证日期格式是否为YYYY-MM-DD格式
			},isDate:function(idStr){
			
				var str = document.getElementById(idStr).value.trim();
				var regex = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
				var r = str.match(regex); // 使用match方法获取指定字符串的值

				if(r==null){
					alert("请输入正确的日期格式!");
				}

			//  验证日期格式是否为YYYY-MM-DD hh:mm:ss格式
			},isDateTime:function(idStr){
			
				var str = document.getElementById(idStr).value.trim();
				var regex = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
				var r = str.match(regex); // 使用match方法获取指定字符串的值

				if(r==null){
					alert("请输入正确的日期格式!");
				}

			// 验证整数
			},isInteger:function(idStr){
				var str = document.getElementById(idStr).value.trim();
				var regex = /^[-+]?\d*$/;
				if(!regex.test(str)){
					alert("请输入正确的整数!");
				}

			// 验证双精度
			},isDouble:function(idStr){
				var str = document.getElementById(idStr).value.trim();
				var regex = /^[-\+]?\d+(\.\d+)?$/;
				if(!regex.test(str)){
					alert("请输入正确的小数!");
				}

			// 验证中文
			},isChinese(idStr){
				var str = document.getElementById(idStr).value.trim();
				var regex = /^[\u0391-\uFFE5]+$/;
				if(!regex.test(str)){
					alert("请输入正确的中文!");
				}

			// 验证邮箱
			},isEmail(idStr){
				var str = document.getElementById(idStr).value.trim();
				var regex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
				if(!regex.test(str)){
					alert("请输入正确的邮箱格式!");
				}

			// 验证手机号
			},isPhone(idStr){
				var str = document.getElementById(idStr).value.trim();
				var regex = /^1[3456789]\d{9}$/;
				if(!regex.test(str)){
					alert("请输入正确的手机号!");
				}

			// 验证身份证
			},isIdCard(idStr){
				var str = document.getElementById(idStr).value.trim();
				var regex = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/;
				if(!regex.test(str)){
					alert("请输入正确的身份证号码!");
				}
			}
		};

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaScript,可以使用正则表达式来进行字符串的处理。正则表达式的基本语法是使用斜杠 (/) 包围起来的模式,模式可以包含各种字符和特殊的元字符来匹配字符串的内容。 以下是一些常见的正则表达式用法: 1. 创建正则表达式对象: 可以使用 `RegExp` 构造函数来创建一个正则表达式对象,例如 `var regex = new RegExp('pattern')` 或者 `var regex = /pattern/`。 2. 匹配字符串: 可以使用 `test()` 方法来判断一个字符串是否匹配某个正则表达式,例如 `regex.test(string)`。 3. 查找和替换字符串: 可以使用 `match()` 方法来查找一个字符串正则表达式匹配的部分,例如 `string.match(regex)`。 还可以使用 `replace()` 方法来替换一个字符串正则表达式匹配的部分,例如 `string.replace(regex, replacement)`。 4. 提取字符串: 可以使用 `exec()` 方法来提取字符串正则表达式匹配的部分,例如 `regex.exec(string)`。 5. 切割字符串: 可以使用 `split()` 方法来根据正则表达式将一个字符串拆分成多个部分,例如 `string.split(regex)`。 以上只是正则表达式的一些基本用法,在实际使用还可以结合各种元字符和修饰符来进行更复杂的匹配和处理。详细的使用方法可以参考引用和引用[2]提到的文章,它们对正则表达式的基础知识和在JavaScript使用做了详细的介绍。请注意,这些文章可能有一些不严谨的地方,所以在实际使用还需要结合其他资源进行验证和进一步学习。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [详解Javascript正则表达式使用](https://blog.csdn.net/weixin_30315723/article/details/99934270)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕穗子博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值