一次记住JavaScript的6个正则表达式方法

首先6这个具象的数字可以帮助我们整体记忆了。

范围

js中有两个类可以让正则发挥作用

创建

var re = /ab+c/ 

方式一:正则表达字面量,这种直接是常量的表示用法可以让js解析器提高性能

var re = new RegExp('ab+c') 

方式二:构造函数,这种方式可以在runtime的时候动态确定正则是什么,更加灵活

常用特殊字符

来记忆一些常用特殊字符,这个是正则本身的范畴了,是不是总觉得记不住?其实我也记不住,每次都是去搜索和online验证来完成一些任务。我也困恼过,其实最后还是因为自己写的少吧,唯手熟尔。。。下面的总结不写具体内容,只列出具体特殊字符和分类,可以尝试一下说出他们的意义,我觉得比看表格更有利于记忆。。。

  • 匹配量的:* + ? {n} {n,} {n,m} .
  • 匹配位置的:^ $
  • 匹配并且需要支持分组的时候需要括号来包裹:(匹配的模式)
  • 匹配条件的:|
  • 匹配集合的:[]
  • 匹配非集合的:[^]

还有大量的由\和字母组成的特殊含义的匹配模式,这些用到的时候查询就可以了,没有必要记住,其实我是记不住。。。

例子

例子是最好的老师。。。。 例子来源于MDN

我想得到匹配后的数组

var myRe = /d(b+)d/g;
myRe.exec('cdbbdbsdbdbz') // ["dbbd", "bb", index: 1, input: "cdbbdbsdbdbz"]
myRe.exec('cdbbdbsdbdbz') // ["dbd", "b", index: 7, input: "cdbbdbsdbdbz"]
myRe.exec('cdbbdbsdbdbz') // null 

注意对于每个正则对象的exec每次调用都只返回一个匹配,如果需要拿到全部匹配就需要while循环获取,循环结束标志是返回值为null

'cdbbdbsdbdbz'.match(/d(b+)d/g) // ["dbbd", "dbd"]
'cdbbdbsdbdbz'.match(/d(b+)d/) // ["dbbd", "bb", index: 1, input: "cdbbdbsdbdbz"] 

string的match挺奇怪的,如果是global匹配则出所有匹配的数组,如果不是,则出第一个匹配的字符串,以及相应的捕获内容

var str = 'hello world!';
var result = /^hello/.test(str); // true
'cdbbdbsdbdbz'.search(/d(b+)d/) // 1
'xxx'.search(/d(b+)d/) // -1 没有匹配
var names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ';
var re = /\s*;\s*/;
var nameList = names.split(re);
// [ "Harry Trump", "Fred Barney", "Helen Rigby", "Bill Abel", "Chris Hand " ]
var re = /apples/gi;
var str = 'Apples are round, and apples are juicy.';
var newstr = str.replace(re, 'oranges');
// // oranges are round, and oranges are juicy.

我想得到是否匹配

var str = 'hello world!';
var result = /^hello/.test(str); // true 

我只想得到第一次匹配的位置

'cdbbdbsdbdbz'.search(/d(b+)d/) // 1
'xxx'.search(/d(b+)d/) // -1 没有匹配 

我想按照匹配拆分字符串

var names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ';
var re = /\s*;\s*/;
var nameList = names.split(re);
// [ "Harry Trump", "Fred Barney", "Helen Rigby", "Bill Abel", "Chris Hand " ]

我想按照匹配覆盖字符串

var re = /apples/gi;
var str = 'Apples are round, and apples are juicy.';
var newstr = str.replace(re, 'oranges');
// // oranges are round, and oranges are juicy.

这个replace方法的用法着实比较多,只放了最基础用法,当有需求的时候再查就好了,整体有概念了再实践比强行记忆要好吧~

总结

以上所述是小编给大家介绍的一次记住JavaScript的6个正则表达式方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • JS正则匹配中文的方法示例

    本文实例讲述了JS正则匹配中文的方法.分享给大家供大家参考,具体如下: 需求:使用JS正则的方式将字符串 "[微笑][撇嘴][发呆][得意][流泪]" 中的汉字进行匹配输出. 示例代码: <script> var pattern1 = /[\u4e00-\u9fa5]+/g; var pattern2 = /\[[\u4e00-\u9fa5]+\]/g; var contents = "[微笑][撇嘴][发呆][得意][流泪]"; content = c

  • JS使用正则截取两个字符串之间的字符串实现方法详解

    本文实例讲述了JS使用正则截取两个字符串之间的字符串方法.分享给大家供大家参考,具体如下: 一个最常用的场景 截取两个字符串中间的字符串 var str = "iid0000ffr"; var substr = str.match(/id(\S*)ff/); alert(substr2); 你会发现逗号后面是你要的东西 /S*表示多个字符串 为什么想要的东西在逗号后,也就是数组第二个. 是因为match的返回数组,第一个表示匹配的字符串,这里是包括id ff的,结果是id0000ff

  • JS正则截取两个字符串之间及字符串前后内容的方法

    本文实例讲述了JS正则截取两个字符串之间及字符串前后内容的方法.分享给大家供大家参考,具体如下: 1.js截取两个字符串之间的内容: var str = "aaabbbcccdddeeefff"; str = str.match(/aaa(\S*)fff/)[1]; alert(str);//结果bbbcccdddeee 2.js截取某个字符串前面的内容: var str = "aaabbbcccdddeeefff"; tr = str.match(/(\S*)ff

  • JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)

    本文实例讲述了JS正则匹配URL网址的方法.分享给大家供大家参考,具体如下: 最强的匹配网址-url的正则表达式:匹配www,http开头的一切网址 直接插入正则表达式: [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.? 完整的js方法: function isURL(domain) { var name = /[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z

  • JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】

    本文实例讲述了JavaScript控制输入框中只能输入中文.数字和英文的方法.分享给大家供大家参考,具体如下: 1.问题背景: 遇到这样一个问题:有一个输入框,要求只能输入中文.数字和英文(即过滤特殊字符串) 2.JS代码: function checkUsername() { //正则表达式 var reg = new RegExp("^[A-Za-z0-9\u4e00-\u9fa5]+$"); //获取输入框中的值 var username = document.getElemen

  • JavaScript正则表达式替换字符串中图片地址(img src)的方法

    本文实例讲述了JavaScript正则表达式替换字符串中图片地址(img src)的方法.分享给大家供大家参考,具体如下: 今天开发中遇到一个问题:如何替换一段HTML字符串中包含的所有img标签的src值? 开始想到的解决方法是: content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match) { console.log(match); }); 输出结果是: 复制代码 代码如下: &

  • js中使用正则表达式查找字母和数字的方法

    废话不多说,先看下js中使用正则查找字母和数字的方法,具体代码如下所示: <!DOCTYPE HTML> <html > <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> window.onload=function(){ localStorage.fiveData="

  • 一次记住JavaScript的6个正则表达式方法

    首先6这个具象的数字可以帮助我们整体记忆了. 范围 js中有两个类可以让正则发挥作用 创建 var re = /ab+c/ 方式一:正则表达字面量,这种直接是常量的表示用法可以让js解析器提高性能 var re = new RegExp('ab+c') 方式二:构造函数,这种方式可以在runtime的时候动态确定正则是什么,更加灵活 常用特殊字符 来记忆一些常用特殊字符,这个是正则本身的范畴了,是不是总觉得记不住?其实我也记不住,每次都是去搜索和online验证来完成一些任务.我也困恼过,其实最

  • JavaScript脚本库编写的方法

    JavaScript就是所谓的客户端脚本语言,是一种在互联网浏览器(浏览器也称为Web客户端,因为它连接到Web服务器上,以下载页面)内部运行的计算机编程语言.JavaScript的工作方式很有趣.普通网页内都会插入一些JavaScript代码.当浏览器加载该页面时,浏览器的内置解释器将读取并运行它在该页面中找到的JavaScript代码. 做Web开发已经四年,或多或少积累了一些JavaScript脚本.比如,限制input只允许输入数字的脚本:敲回车自动转到下一个控件,相当于Tab键的作用一

  • php与javascript正则匹配中文的方法分析

    本文实例讲述了php与javascript正则匹配中文的方法.分享给大家供大家参考,具体如下: php中正则匹配utf-8中文: (重点是:[\x{4e00}-\x{9fa5}]+) $str = "我们"; if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str,$arr)) { print("该字符串全部是中文"); echo '<pre>'; print_r($arr); } else {

  • JavaScript脚本性能的优化方法

    From:http://www.nirvanastudio.org/javascript/improve-javascript-performance.html 作者:ShiningRay @ Nirvana Studio 随着网络的发展,网速和机器速度的提高,越来越多的网站用到了丰富客户端技术.而现在Ajax则是最为流行的一种方式.JavaScript是一种解释型语言,所以能无法达到和C/Java之类的水平,限制了它能在客户端所做的事情,为了能改进他的性能,我想基于我以前给JavaScript

  • JavaScript实现反转字符串的方法详解

    本文实例讲述了JavaScript实现反转字符串的方法.分享给大家供大家参考,具体如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>JavaScript 实现反转字符串</title> </head> <body> <script langu

  • JavaScript中setter和getter方法介绍

    javascript中的setter.getter是平时接触比较少的方法,其本身也并不是标准方法,只在非ie浏览器里支持(ie内核也许有其他方法可以做到呢?暂时不知其解),但是加以利用可以做许多事情,比如: 1.对数据的访问限制: a.value是对value变量的getter方法调用,如果在getter方法实现中抛出异常,可以阻止对value变量的访问 2.对dom变量进行监听: window.name是一个跨域非常好用的dom属性(大名鼎鼎,详见百度),如果覆盖window.name的set

  • JS实现登录页面记住密码和enter键登录方法推荐

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>按enter键触发事件和记住账号密码</title> <script> //方法一: // document.onkeypress=function(e){ // var keycode=document.all?event.keyCode:e.which; // if(keycode

  • JavaScript中英文字符长度统计方法示例【按照中文占2个字符】

    本文实例讲述了JavaScript中英文字符长度统计方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS中英文字符串长度计算</title> </head> <body> <script> var oriText = "

  • JavaScript 中使用 Generator的方法

    Generator 是一种非常强力的语法,但它的使用并不广泛(参见下图 twitter 上的调查!).为什么这样呢?相比于 async/await,它的使用更复杂,调试起来也不太容易(大多数情况又回到了从前),即使我们可以通过非常简单的方式获得类似体验,但是人们一般会更喜欢 async/await. 然而,Generator 允许我们通过 yield 关键字遍历我们自己的代码!这是一种超级强大的语法,实际上,我们可以操纵执行过程!从不太明显的取消操作开始,让我们先从同步操作开始吧. 我为文中提到

  • JavaScript中遍历的十种方法总结

    1.while循环 while后面跟循环条件和执行语句,只要满足条件,就会一直执行里面的执行 var i = 0 while(i<10){ console.log(i) i++ } 2.do...while循环 与while相似,但是他会先执行一次,再做判断条件 var i=0 do{ console,log(i) i++ }while(i<10) 3.for循环 var arr = [0,1,2,3] for(let i = 0;i < arr.length;i++){ console

随机推荐