js正则表达式replace中参数为$1、$2、...、$99、函数等用法以及常用的正则表达式

阅读: 评论:0

js正则表达式replace中参数为$1、$2、...、$99、函数等用法以及常用的正则表达式

js正则表达式replace中参数为$1、$2、...、$99、函数等用法以及常用的正则表达式

语法:

string.replace(regexp, replacement)

参数:

regexp:必需。要搜索的值或正则表达式。

replacement:必需。指定替换文本或生成替换文本的函数。

返回值:已替换指定值的新字符串。

w3school:JavaScript String replace() 方法

一、常规使用

将aaa替换为111:

var str = "aaa,bbb,ccc";
place('aaa', "111");//输出'111,bbb,ccc'

将连续的字母替换为111:

var str = "aaaaaaa,bbbbbb,ccc";
place(/w+/g, "111");//输出'111,111,111'

 将所有字母全部替换为1:

var str = "aaa,bbb,ccc";
place(/w/g, "1");//输出'111,111,111'

二、$1、$2、...、$99

var str = "aaa,bbb,ccc";
place(/(w+),(w+),(w+)/, "$3,$2,$1");//输出'ccc,bbb,aaa'
  • $1代表第一个(w+)匹配到的内容,即aaa
  • $2代表第一个(w+)匹配到的内容,即bbb
  • $3代表第一个(w+)匹配到的内容,即ccc
var str = "aaa、bbb、ccc";
place(/(w)+、(w)+、(w)+/, "$3$2$1");//输出'cba'
  • $1代表第一个(w)匹配到的内容,即a
  • $2代表第一个(w)匹配到的内容,即b
  • $3代表第一个(w)匹配到的内容,即c

结论:$1、$2、...、$99 表示正则表达式中的括号匹配项的结果。

三、函数

//输出'hello,world'
var str = "Hello,World";
place(/[A-Z]/g, function(val){LowerCase()
});//输出'HELLO,WORLD'
var str = "Hello,World";
place(/[a-z]/g, function(val){UpperCase()
});//输出'000,000,111'
var str = "aaaaaaa,bbbbbb,ccc";
place(/w+/g, function(val){return val === 'ccc' ? '111':'000'
});

一个经典的例子——模板字符匹配: 

var data = {title:'标题',subTitle: '副标题',content:'内容'
}
var str='这是一段内容,标题是{{title}},副标题是{{subTitle}},内容是{{content}}&#place(/{{(.*?)}}/g, function(val,key){return data[key]
});

输出:这是一段内容,标题是标题,副标题是副标题,内容是内容

这里函数的第一个参数是匹配的内容,第二个参数是括号匹配的结果

四、其他常用正则表达式

邮箱格式:^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-z]{2,}$

正整数:^[1-9]([0-9])*$

身份证号^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
ip地址^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
数字或英文字母^([0-9a-zA-Z]+)$
手机号码^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\d{8}$
日期时间格式YYYY-MM-DD HH:mm:ss^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})$
日期格式YYYY-MM-DD^(\d{4}-\d{2}-\d{2})$
合法url

(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]

最多三位小数^(?:[1-9]\d*|0)(?:\.\d{1,3})?$
大于等于0且最多三位小数^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,3})?$
最多两位小数^(?:[1-9]\d*|0)(?:\.\d{1,2})?$
大于等于0且最多两位小数^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$
至少两个字符,中文或英文^([a-zA-Z\u4E00-\u9FA5]+)$
3-15个字符,仅限数字、字母、斜杠、横杠、点^[-/0-9A-Za-z.]{3,15}$

本文发布于:2024-02-04 13:14:59,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170708091255900.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:正则表达式   函数   常用   参数   js
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23