javascript正则用法

正则表达式在JS中的应用

一、定义

正则表达式是对字符串操作的一种逻辑公式。用事先定好的一些特定字符组成一个“规则字符串”,再用“规则字符串”对字符串进行过滤。
ECMAScript通过RegExp类型来支持正则表达式。
它是对字符串执行模式匹配的强大工具

二、写法

pattern里面一个字符串,代表的是正则
attributes为可选字符串,包含属性:’g’、’i’、’m’ 分别是用于指定全局匹配”g”、不区分大小写”i”、多行匹配”m”

  • 1、直接量的字符串语法:
    /pattern/attributes // /正则/正则属性, 例如在全局匹配”a”:/’a’/g
  • 2、RegExp对象的语法:
    var reg = new RegExp(pattern,attributes)// RegExp 对象规定在文本中检索的内容。

三、方法:

  • 1、直接量的字符串用法:
    • search 检索与正则表达式相匹配的值。
    //stringObject.search(字符串或正则表达式)
    var str = 'How are you doing today?'; 
   console.log(str.search("a")); //4
   console.log(str.search(/a/g)); //4
- match 找到一个或多个正则表达式的匹配。 
  //stringObject.match(字符串或正则表达式)
    var str = 'How are you doing today?'; 
   console.log(str.match("a")); //["a", index: 4, input: "How are you doing today?"] index是a的位置
   console.log(str.match(/[ ]/g)); //["o", "o", "o", "o"]
- replace   替换与正则表达式匹配的子串。
  //stringObject.replace(字符串或正则表达式,要替换的内容)
    var str = 'How are you doing today?'; 
   console.log(str.replace(" ","")); //Howare you doing today?
   console.log(str.replace(/\w/i,'@')); //@ow are you doing today? 
- split 把字符串分割为字符串数组。
 //stringObject.split(字符串或正则表达式,可指定返回的数组的最大长度)
    var str = 'How are you doing today?';
   console.log(str.split(" ")); //"How", "are", "you", "doing", "today?"]
   console.log(str.split(/\s/g)); //"How", "are", "you", "doing", "today?"]
  • 2、RegExp对象的用法:
    • test():检索字符串中的指定值。返回值是true或false。
var str = 'How are you doing today?';
var reg = new RegExp('a','g');
console.log(reg.test(str)); //true
- exec():检索字符串中的指定值,返回值是被找到的值,若没找到则返回null
var str = 'How are you doing today?';
var reg = new RegExp('a','g');
console.log(reg.exec(str)); //true
- compile():用于改变RegExp规则(改变和重新编译正则表达式)
var str = 'How are you doing today?';
var reg = new RegExp('a','g');
console.log(str.replace(reg,'A')); //How Are you doing todAy?
reg.compile('o','g'); //替换正则
console.log(str.replace(reg,'O')); //HOw are yOu dOing tOday?

四、元字符

1、. :查找单个字符,除了换行和行结束符
2、\w :查找单词字符、数字、“_”(即,字母、数字、下划线)
\W :\w的取反
3、\d :查找数字
\D :\d的取反
4、\s :查找空白字符(“”、‘\n’、‘\r’)
5、\b :匹配单词边界
\B :\b的取反
6、\n :查找换行符
7、\u : 匹配汉字([\n4e00-\u9fa5 ])
8、^n:匹配任何开头为 n 的字符串。
9、n$:匹配任何结尾为 n 的字符串。

五、方括号(表示范围)

1、[abc] :查找方括号之间的任何(单个)字符。
2、[^abc] : 查找任何不在方括号之间的字符。
3、[0-9] : 查找任何从0 到 9的数字。
4、[a-z] :查找任何从小写 a 到 z的字符。
5、[A-Z] :查找任何从大写 A 到 Z 的字符

/[0-9A-Za-z_]/ : 相当于\w ;

^ /[^0-9A-Za-z_]/ è\W。

六、分支(或):|

七、量词

1、n+ :匹配任何包含至少一个 n 的字符串。

2、n*:匹配任何包含零个或多个 n 的字符串。

3、n?:匹配任何包含零个或一个 n 的字符串。

4、n{X}:匹配包含 X 个 n 的字符串。

5、n{X,Y}:匹配包含 X ~ Y 之间 n 的字符串。

6、n{X, }:匹配X个n字符串及以上

八、其它

1、匹配中文字符的正则表达式: /[\u4e00-\u9fa5]/g
2、去掉首尾空格 reg = /^\s+|\s+$/g

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值