博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快乐的JS正则表达式(三)
阅读量:7038 次
发布时间:2019-06-28

本文共 1216 字,大约阅读时间需要 4 分钟。

  ?的用途。

  小任务:匹配一段网址如var str = "http://www.123.com/";注意http也可以是https

var str = "http://i.cnblogs.com/";var reg = /https?:\/\/[a-z]+\.[a-z0-9]+\.[a-z]+\//;console.log(reg.exec(str)); //["http://i.cnblogs.com/", index: 0, input: "http://i.cnblogs.com/"]

  ?表示前面的那个字符0个或者1个因为/在js中有另外的含义所以我使用了转义字符\

  为了更深入的理解转义字符,在来一个例子。

  var str = "Array[5]";匹配这段代码中的括号以及数字,数字可以是0-9中任意的一个,也许你会这样写

var str = "Array[5]";var reg = /[0-9]/;console.log(reg.exec(str)); //["5", index: 6, input: "Array[5]"]

  但是却没有匹配到[],因为[]在正则中有特殊含义,所以我们需要对它进行转义。

var str = "Array[5]";var reg = /\[[0-9]\]/;console.log(reg.exec(str)); //["[5]", index: 5, input: "Array[5]"]

  第一个[]进行了转义,第二个[]正常使用,因为我们只需要匹配一个[]

  其实匹配数字或者字母并不一定需要使用a-z,我们也可以使用\d,\w  \d表示任意一个数字,\w表示任意一个字母

var str = "Object";var reg = /\w+/;console.log(reg.exec(str)); //["Object", index: 0, input: "Object"]
var str = "112113";var reg = /\d+/;console.log(reg.exec(str)); //var str = "112113";

  匹配邮箱小案例

var str = "html5@123.com.cn";var reg = /[\d\w]+@[\d\w]+(\.[\w]+)+/;console.log(reg.exec(str)); //["html5@123.com.cn", ".cn", index: 0, input: "html5@123.com.cn"]

  [\d\w]+用来匹配html5,[\d\w]+用来匹配123,(\.[\w]+)+用来匹配.com.cn只所以用()扩起来是因为我们需要把里面的内容当做一个整体,因为.com后还可以用多个

  从后面的几节开始,我们将会进入到实战篇。

本节完。

转载地址:http://fxnal.baihongyu.com/

你可能感兴趣的文章