JS正则常用函数

一、JS正则表达式

var re = /[A-Z]{2}/g;var re = new RegExp("[A-z]{2}", "g");

g表示全局
i表示不区分大小写

二、替换方法replace()

str.replace(regexp|substr, newSubStr|function)
该方法不替换字符串本身,只返回一个新替换后的字符串。

  • regexp (pattern)一个正则对象或字面量
  • substr (pattern)一个将被 newSubStr 替换的 字符串。
  • newSubStr (replacement)替换匹配部分的字符串
  • function (replacement)一个用来创建新子字符串的函数
const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';

console.log(p.replace('dog', 'monkey'));
//单词替换

const regex = /Dog/i;
console.log(p.replace(regex, 'ferret'));
//不区分大小写的单词替换

const str = 'a-bb-cc'
console.log(str.replace(/\-[a-z]/g,(x) => { 
  return x.replace("-","").toUpperCase(); }
));
//通过函数转化字符串

const str2 = 'aBbCc';
console.log(str2.replace(/[A-Z]/g, (x) =>{
  return '-'+match.toLowerCase()}  
));
//通过函数转化字符串

替换字符串函数的参数
在这里插入图片描述

也可以在替换字符串中插入特殊变量名

变量名代表的值
$&插入匹配的子串。
$`插入当前匹配的子串左边的内容。
$’插入当前匹配的子串右边的内容。

例如:

const str = 'aBbCc'
console.log(str.replace(/[A-Z]/g, '-'+"$&"
  ));
 //a-Bb-Cc

三、匹配方法match()

str.match(regexp)方法检索返回一个字符串匹配正则表达式的结果(数组)。

const str = 'aa-bb-cc';
console.log(str.match(/\-[a-z]/g));
// expected output: Array ["-b", "-c"]

四、matchAll()方法

str.matchAll(regexp)返回一个包含所有匹配正则表达式的结果及分组捕获组的迭代器。

RegExp必须是设置了全局模式g的形式,否则会抛出异常TypeError。

const regexp = /t(e)(st(\d?))/g;
const str = 'test1test2';

const array = [...str.matchAll(regexp)];

console.log(array[0]);
// expected output: Array ["test1", "e", "st1", "1"]

console.log(array[1]);
// expected output: Array ["test2", "e", "st2", "2"]

matchAll()match()的区别是,当使用 match()/g 标志方式获取匹配信息时,捕获组会被忽略:

var regexp = /t(e)(st(\d?))/g;
var str = 'test1test2';

str.match(regexp);
// Array ['test1', 'test2']

五、search()方法

str.search(regexp)方法返回首次匹配成功时的索引,匹配失败则返回 -1。

类似于正则表达式的test()方法,比match()快一点。

var str = "hey JudE";
var re = /[A-Z]/g;
var re2 = /[.]/g;
console.log(str.search(re)); // returns 4, which is the index of the first capital letter "J"
console.log(str.search(re2)); // returns -1 cannot find '.' dot punctuation

参考链接:
[1] MDN https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions
[2] 常用正则 https://oktools.net/regex

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值