正则表达式匹配

JS中正则表达式常用方法:

在RegExp对象中:

1:test(yourString);

定义:检测一个字符串是否匹配某个模式。
其他说明:该方法将忽略"g"标志,只要查找到符合模式的字符串即匹配成功。(如果正则对象含有"g"标志,那么每次使用test()将从lastIndex位置开始匹配,匹配成功会更新lastIndex属性值;没有"g"标志,test()将从字符串起点开始匹配,也不会对lastIndex做更新)

2:exec(yourString);

定义:检索字符串中的正则表达式的匹配。
其他说明:若没开启"g"标志,从字符串起始位置开始并只查找一次,不修改正则对象的lastIndex属性,返回一个对象,包含下标0、index、input,这时属性和match等价;开启"g",从lastIndex位置开始查找,如果存在匹配将修改正则对象的lastIndex属性为这次找到的子字符串的末尾位置,返回一个同样的对象。(你可以自行修改正则对象的lastIndex属性来规定exec开始查找的位置。)

var reg = /^a[1-9]/;
var arr = reg.exec("a4");
console.log(arr[0]); //a4
console.log(arr.index);//0
console.log(reg.exec("a2"));//["a2", index: 0, input: "a2", groups: undefined]

小总结:不具有"g"标志的正则对象和String对象的正则操作不能访问和修改lastIndex属性。(如果在成功地匹配了某个字符串之后就开始检索另一个新的字符串,需要手动地把这个属性设置为0)

在String对象中:

1:search(yourRegexpOrString);

定义:检索字符串中与指定的子字符串或正则表达式相匹配的子字符串。
其他说明:该方法将忽略"g"标志和正则对象的lastIndex属性(即总是从开头找起),返回找到的第一个字符的位置,如果未找到返回-1。

2:match(yourRegexpOrString);

定义:在字符串内查找一个或多个与正则表达式匹配的字符串,返回一个对象。(同样忽略laseIndex属性,下面两个函数也同样)
其他说明:若没开启"g"标志,将只查找第一个匹配的字符串,返回一个对象,包含下标0、index、input,其中下标0等价于index,input是String的引用;开启"g",返回一个数组,数组的length是匹配的字符串个数,每个元素是每个匹配的起始字符位置。

3:replace(yourRegexpOrString,placementString);

定义:用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
其他说明:如果没有"g"标志只会替换一次,并且如果参数是字符串而不是正则对象始终替换一次。

使用replace正则匹配的方法:

去除所有空格: str = str.replace(/\s*/g,"");

去除两头空格: str = str.replace(/^\s|\s$/g,"");

去除左空格: str = str.replace( /^\s*/, “”);

去除右空格: str = str.replace(/(\s*$)/g, "");

常见的元字符描述

  • \w
    匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。
  • \W
    匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
  • \s
    匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
  • \S
    匹配任何可见字符。等价于[^ \f\n\r\t\v]。
  • [^,] 除了逗号之外的任何字符
  • ([^,]*), 我们必须找到0或者多个非逗号字符后面跟着一个逗号,并且非逗号字符那部分要标记出来以备后用。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356

推荐阅读更多精彩内容

  • 正则表达式在 js 中的应用主要用到3个方法 exec():为指定的一段字符串执行搜索匹配操作。它的返回值是一个数...
    稀里糊涂姑娘阅读 24,975评论 1 3
  • python的re模块--细说正则表达式 可能是东半球最详细最全面的re教程,翻译自官方文档,因为官方文档写的是真...
    立而人阅读 22,891评论 4 46
  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 3,092评论 0 7
  • 自从年前得空写了两篇文章之后就开始忙了,这一忙就是2个月😭。当时信誓旦旦说的定期写篇博客的计划也就泡汤了🤣,不过好...
    景科同学阅读 1,160评论 0 9
  • 初衷:看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印...
    DCbryant阅读 4,014评论 0 20