正则表达式记录
- 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 商标注册申请驳回通知发文</td>\
</tr><tr><td>2015-02-06 00:00:00.0 驳回复审中</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/