正则表达式工作记录

正则表达式记录


  • 2021-02-21 分割千位符数字
Eg:1
	"1234567890".replace(/\B(?=(?:\d{3})+(?!\d))/g,",")  // 1,234,567,890

在这里插入图片描述

  • 2018-03-21 将get-element-by-id 转换成 getElementById
Eg:1
function tofunctionName(str){
    return str.replace(/-\w/g,function(x){
        return x.slice(1).toUpperCase();
    }
}
Eg:2
 var str = "20180606";
 var newStr = str.replace(/(\d{4})(\d{2})(\d{2})/,function(input,$1,$2,$3){
                   console.log(input); //201806
                   console.log($1);//2018
                   console.log($2);//06
                   return $1+'-'+$2+'-'+$3;//2018-06-06
    })
    console.log(newStr);//2018-06-06
//x为匹配到的字符串,其中函数参数中还可以接受一个参数,表示为匹配到的下标位置
  • 2018-05-25 去掉字符串中<p style=“color:red;”>这是一个p标签的段落</p>,请用正则表达式去掉
  var reg = /<p.*>|<\s*p\s*>/gi;
  var str = "<p style='color:red'>这是一个p标签的段落</p>"
  console.log(str.reg(reg,''));
  //输出内容:----这是一个p标签的段落
  • 2018-05-30 输入的小数中间不能有其他符号,且只能有一个小数点。
//10.2可以0.32 (前面有一个空格)可以10.02.2不可以.2不可以
var reg = /^\d+\.?\d*$/;
var value = document.getElementById("input")[0];
reg.test(value.trim());

  • 2018-08-09匹配标签里的文字部分?
    var str = '<tr>\
                    <td class="title">2015-01-24 00:00:00.0&nbsp;&nbsp;商标注册申请驳回通知发文</td>\
                    </tr><tr><td>2015-02-06 00:00:00.0&nbsp;&nbsp;驳回复审中</td>\
               </tr>';
    // var reg = /(?<=<td.*?>).*?(?=<\/td>)/gi;这个是错误的,因为 . 是匹配任意单个单个字符,所以这个
    // 直接会匹配一些tr标签 td标签  所以不对
    var reg = /(?<=<td[^>]*?>)(.*?)(?=<\/td>)/gi   //这里应该有取非操作符
  • 2018-10-31LeetCode正则表达式匹配。
	##### 题目
		给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。		
		'.' 匹配任意单个字符。
		'*' 匹配零个或多个前面的元素。
		匹配应该覆盖整个字符串 (s) ,而不是部分字符串。
		
	###### 说明:
	
		s 可能为空,且只包含从 a-z 的小写字母。
		p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。
		
	示例 1:
	###### 输入:
    	s = "aa"
		p = "a"
		输出: false
		解释: "a" 无法匹配 "aa" 整个字符串。
		
	示例 2:
	###### 输入:
		s = "aa"
		p = "a*"
		输出: true
		解释: '*' 代表可匹配零个或多个前面的元素, 即可以匹配 'a' 。因此, 重复 'a' 一次, 字符串可变为 "aa"。
		
	示例 3:	
	###### 输入:
		s = "ab"
		p = ".*"
		输出: true
		解释: ".*" 表示可匹配零个或多个('*')任意字符('.')。
		
	示例 4:
	###### 输入:
	s = "aab"
	p = "c*a*b"
	###### 输出: true
	解释: 'c' 可以不被重复, 'a' 可以被重复一次。因此可以匹配字符串 "aab"。
	
	示例 5:	
	###### 输入:
	s = "mississippi"
	p = "mis*is*p*."
	输出: false

###### 答案
var isMatch = function(s, p) {
    var reg = new RegExp('^' + p + '$')
    return reg.test(s)
};
  • 2018-11-12正则表达式解决url参数问题
function getUrlParams(name){
	var reg = new RegExp('(^|&)'+name+'=([^&]*)(&|$)');
	var r = window.location.search.substr(1).match(reg);
	if (r != null) {
        return unescape(r[2])
      }
    return null
}
//使用方法:将想要查找的参数传入getUrlParams方法即可

2018-01-28 正则表达式匹配微信浏览器内核版本

    function getBrowserVersion () {
        let browser = { appname: 'unknown', version: 0 },
        userAgent = window.navigator.userAgent.toLowerCase()
        if (
          /(msie|firefox|opera|chrome|netscape)\D+(\d[\d.]*)/.test(userAgent)
        ) {
          browser.appname = RegExp.$1
          browser.version = RegExp.$2
        } else if (/safari\/(\d+\.\d+)\b/.test(userAgent)) {
          browser.appname = 'safari'
          browser.version = RegExp.$1
        }
        console.log(browser.appname + browser.version)
        return (browser.appname + browser.version)
    },
    //这样就可以拿到微信所使用的浏览器的类型和版本

2019-06-10 文本框中,财务那边复制机构ID号,每个ID会换行,后台字段要求传A,B,C这样的格式。

 	var reg =  /\d.*(?=\n)?/gi
 	var textarera = reg.match(reg)
 	insStr = textarea.join(,)

2019-07-01 后端渲染,面包屑导航,A/B/C/,点击上一级一次,请求接口,其中一个字段为必须为A/B/,即去掉C/。

    var a = A/B/C/
 	var c = a.replace(/(?<=\/)([^\/.]+)?\/$/,'')
 	// c为A/B/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值