首页 > 其他分享 >js正则表达式replace中参数为$1、$2、...、$99、函数等用法以及常用的正则表达式

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

时间:2023-07-04 19:44:27浏览次数:47  
标签:... aaa 正则表达式 replace 111 str var ccc

js正则表达式replace中参数为$1、$2、...、$99、函数等用法以及常用的正则表达式
原文链接:https://blog.csdn.net/sxww_zyt/article/details/130258920
示例:时间格式进行转换显示。

   // 20200701192712   2020-07-01 19:27:12
  getdateString(datastr){ 
  let pattern = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/;
  var datastr = '20200701192712';
   datastr = datastr.replace(pattern,'$1-$2-$3 $4:$5:$6');
 }

语法:

string.replace(regexp, replacement)

参数:

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

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

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

w3school:JavaScript String replace() 方法

一、常规使用

将aaa替换为111:

  1. var str = "aaa,bbb,ccc";
  2. str.replace('aaa', "111");//输出'111,bbb,ccc'

将连续的字母替换为111:

  1. var str = "aaaaaaa,bbbbbb,ccc";
  2. str.replace(/\w+/g, "111");//输出'111,111,111'

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

  1. var str = "aaa,bbb,ccc";
  2. str.replace(/\w/g, "1");//输出'111,111,111'

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

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

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

三、函数

  1. //输出'hello,world'
  2. var str = "Hello,World";
  3. str.replace(/[A-Z]/g, function(val){
  4. return val.toLowerCase()
  5. });
  6. //输出'HELLO,WORLD'
  7. var str = "Hello,World";
  8. str.replace(/[a-z]/g, function(val){
  9. return val.toUpperCase()
  10. });
  11. //输出'000,000,111'
  12. var str = "aaaaaaa,bbbbbb,ccc";
  13. str.replace(/\w+/g, function(val){
  14. return val === 'ccc' ? '111':'000'
  15. });

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

  1. var data = {
  2. title:'标题',
  3. subTitle: '副标题',
  4. content:'内容'
  5. }
  6. var str='这是一段内容,标题是{{title}},副标题是{{subTitle}},内容是{{content}}'
  7. str.replace(/\{\{(.*?)\}\}/g, function(val,key){
  8. return data[key]
  9. });

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

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

四、其他常用正则表达式

邮箱格式:^[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}$

标签:...,aaa,正则表达式,replace,111,str,var,ccc
From: https://www.cnblogs.com/sunny3158/p/17526809.html

相关文章

  • 【本周特惠课程】深度学习6大模型部署场景(Pytorch+NCNN+MNN+Tengine+TensorRT+微信小
    前言欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下:第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用。第2层:掌握CV算法最底层的能力,包括模型设计基础,图像分类,模型分析。第3层:掌握CV算法最核心的方向,包括图像分......
  • 【C++】关于常引用的问题 #什么是权限放大?权限放小?隐式或强制转换居然还有这一步?...#
    前言引用在c++中的使用非常常见,可以说是很重要的,引用的常引用相关的问题让很多人稍不留神就出错了,这里我们就来谈谈常引用的问题。关于权限关于权限有权限缩小和权限放大的问题,比如一个文件,当初它只有读的权限,而现在你给它再加个写的权限,这就是权限放大;又或当初它读,写的权限......
  • 直播软件开发,TextView内容过多,超过n行显示“...全文”
    直播软件开发,TextView内容过多,超过n行显示“...全文” /**   *TextView超过两行,末尾显示"...全文"   *为避免抖动,需在xml中设置TextView的maxHeight   *@parammaxLine最多几行   *@paramstrNum 末尾显示字符数   *@paramstr 末尾显示字......
  • 使用 ABAP 正则表达式提高字符串解析的执行效率
    在ABAP(AdvancedBusinessApplicationProgramming)中,正则表达式(RegularExpressions)是一种强大的工具,可用于处理字符串和文本数据。正则表达式可以帮助您执行各种任务,如查找和替换文本、验证输入格式或拆分字符串。本文将介绍在ABAP中使用正则表达式的几种方法。使用CL_ABAP......
  • oracle regexp_replace 去空白符
    1、去空白符SQL:SELECTregexp_replace(STR,'^\s*','*')AS"去掉左边空白符",regexp_replace(STR,'\s*$','*')AS"去掉右边空白符",regexp_replace(STR,'(^\s*)|(\s*$)','*')AS"去掉......
  • 展开语法和剩余语法(剩余参数)都是三个点...
    展开语法(Spreadsyntax),可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时,将对象表达式按key-value的方式展开;剩余参数语法允许我们将一个不定数量的参数表示为一个数组。区别是展开语法是把一个变量展开,剩余参数是一个参数用来代......
  • ERROR 3529 (HY000): Cannot load component from specified URN....
    这里介绍、演示一下,安装validate_password组件时遇到ERROR3529(HY000):CannotloadcomponentfromspecifiedURN:'file://component_validate_password'错误的原因当前测试的环境为MySQL8.0.33mysql> select @@version;+-----------+| @@version |+-----------+| 8.......
  • 当我用Python爬取了京东商品所有评论后发现....
    不知道各位网购的时候,是否会去留意商品评价,有些小伙伴是很在意评价的,看到差评就不想买了,而有些小伙伴则是会对差评进行理性分析,而还有一类人不在乎这个。当然这都是题外话,咱们今天主要的目的是使用Python来爬取某东商品的评价,并保存到CSV表格。1、数据采集逻辑在进行数......
  • 图书商城Vue+Element+Node项目练习(...)
    本系列文章是为学习Vue的项目练习笔记,尽量详细记录一下一个完整项目的开发过程。面向初学者,本人也是初学者,搬砖技术还不成熟。项目在技术上前端为主,包含一些后端代码,从基础的数据库(Sqlite)、到后端服务Node.js(Express),再到Web端的Vue,包含服务端、管理后台、商城网站、小程序/App,分......
  • 【GiraKoo】VS提示Some bytes have been replaced with the Unicode substitution cha
    【问题解决】VS提示SomebyteshavebeenreplacedwiththeUnicodesubstitutioncharacterVS提示SomebyteshavebeenreplacedwiththeUnicodesubstitutioncharacterwhileloadingfilexxxxxwithUnicode(UTF-8)encoding.Savingthefilewillnotpreservetheor......