JavaScript正则表达式

正则表达式

  • 定义字符串的规则
    计算机可以根据正则表达式,检查字符串是否符合规则,获取字符串中符合规则的内容提取出来
  1. 创建正则表达式的对象var 变量 = new RegExp("正则表达式",“匹配模式”)
    使用typeof检查正则对象 会返回object
  2. 正则表达式的一个方法text(),来检查一个字符串是否符合正则表达式的规则,是true,不是false
    判断字符串中是否有a
   var reg = new RegExp("a");
   console.log(reg.test("a"));
   //true
   console.log(reg.test("acidkjfl"));
   //true
   console.log(reg.test("Aeecje");
   //false
  1. 在构造函数中可以传递一个匹配模式作为第二个参数,i 忽略大小写,g 全局匹配模式
  • 使用字面量来创建正则表达式
    var 变量 = /正则表达式/匹配模式 var patt = /runoob/i
  1. 在 JavaScript 中,正则表达式通常用于4个字符串方法 : search() , replace(), split(), match()。

search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

 var str = "Visit Runoob!"; 
 var n = str.search(/Runoob/i);
 //6

 var b = "hello ab hello ac ad";
 console.log(b.search(/a[bd]/));
 //6 返回第一次出现的索引 -1则搜索不到

replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

<body>

<p>替换 "microsoft""Runoob" :</p>
<button onclick="myFunction()">点我</button>
<p id="demo">Visit Microsoft!</p>
<script>
function myFunction() {
	//从html,id为“demo”中获取内容
    var str = document.getElementById("demo").innerHTML; 
    var txt = str.replace(/microsoft/i,"Runoob");
    document.getElementById("demo").innerHTML = txt;
}
</script>

match() 方法 匹配 设为全局模式 可以设置多个匹配模式

var c =  "1a2b3c4d5e6f7";
console.log(c.match(/[a-z]/ig));
 //Array(6) [ "a", "b", "c", "d", "e", "f" ]

split() 方法 里面传递正则表达式

 var a = "1a2b3c4d5e6f7";
 console.log(a.split(/[a-z]/));
 //Array(7) [ "1", "2", "3", "4", "5", "6", "7" ]
  1. | ,[ ]:或者 /a|b/ == /[ab]/
  2. [a-z]任意的小写字母 ,[A-Z]任意的大写字母
  3. 一个字母中是否含有abc或aec或adcconsole.log(/a[bed]c/.test("afc"));
  4. [^]除了console.log(/[^ab]/.test("abc"));//找除了ab以外有没有其他
  5. //[0-9]任意数字
  6. //量词 {n}正好出现n次 只对他前面一个内容起作用
        console.log(/ab{3}/.test("ababab"));
        //false
        console.log(/(ab){3}/.test("ababab"));
        //true
  1. {m, n}出现m-n次,出现m次以上console.log(/ab{1,3}c/.test("abc"));
  2. *0个以上
  3. ^表示开头,$表示结尾
        //判断手机号是否合法13750766692
        //1.以1开头^1
        //2.第二位是3-9任意数字[3-9]
        //3.三位以后任意9个数字[0,9]{9}$
        console.log(/^1[3-9][0-9]{9}$/.test("13750766692"))

14.\.表示.,\\表示\(使用\作为转义字符)
14. \w任意数字字母[A-z0-9],\W除了数字字母[^A-z0-9]
15. 创建一个正则表达式检查一个字符串中是否含有child

        //  /child/只要有child就行 不管他是不是独立的单词
        //  /\bchild\b/ 独立的单词child
        console.log(/child/.test("hello child"));
  1. 接收一个用户的输入,去掉字符串中前后的空格,用空串代替 ,去除开头的空格,去掉末尾的空格
        //var str = prompt("请输入一个用户名");
        var str = "        hello         "
        //去掉字符串中前后的空格,用空串代替 
        str = str.replace(/\s/g, "");
        console.log(str);//hello
        //去除开头的空格/^\s*/g
        //去掉末尾的空格/\s*$/g
        //去掉开头末尾的空格 |或连接
        console.log("    frf ce ferc   ".replace(/^\s*|\s*$/g, ""));//frf ce ferc
  1. 电子邮箱的正则表达式
    [@字符前可以包含字母、数字、下划线和点号;@字符后可以包含字母、数字、下划线和点号;@字符后至少包含一个点号且点号不能是最后一个字符;最后一个点号后只能是字母或数字]
    console.log(/^([\w-\.]+)@([\w-\.]+)(\.[a-zA-Z0-9]+)$/.test("yyq@mjatm.cn"));

  2. 判断输入是否为数字字母下划线console.log("是否为数字字母下划线" + /^\w+$/.test("12xqe_"));

  3. 判断字符串是否全为数字console.log("是否全为数字" + /^\d+$/.test("1234"));

  4. 判断字符串是否全为字母console.log("是否全为字母" + /^[a-zA-Z]+$/.test("wexe"));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值