首页 > 其他分享 >js RegExp汇总

js RegExp汇总

时间:2023-04-07 16:23:37浏览次数:40  
标签:console log 汇总 js str var RegExp reg match

// ----------  JavaScript RegExp  ----------


/*
  语法:
  const patt=new RegExp(pattern,modifiers)
  或
  const patt=/pattern/modifiers

  pattern(模式) 描述了表达式的模式
  modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配
*/

// 修饰符 - 用于执行区分大小写和全局匹配:
/*
  i    执行对大小写不敏感的匹配。
  g    执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
  m    执行多行匹配。
*/

// 方括号 - 用于查找某个范围内的字符:
/*
  [abc]      查找方括号之间的任何字符。
  [^abc]    查找任何不在方括号之间的字符。
  [0-9]      查找任何从 0 至 9 的数字。
  [a-z]      查找任何从小写 a 到小写 z 的字符。
  [A-Z]      查找任何从大写 A 到大写 Z 的字符。
  [A-z]      查找任何从大写 A 到小写 z 的字符。
  [adgk]    查找给定集合内的任何字符。
  [^adgk]    查找给定集合外的任何字符。
  (red|blue|green)    查找任何指定的选项。
*/

// 元字符 - 是拥有特殊含义的字符:
/*
  .      查找单个字符,除了换行和行结束符。

  \w    查找数字、字母及下划线。
  \W    查找非单词字符。

  \d    查找数字。
  \D    查找非数字字符。

  \s    查找空白字符。
  \S    查找非空白字符。

  \b    匹配单词边界。
  \B    匹配非单词边界。

  \0    查找 NULL 字符。
  \n    查找换行符。
  \f    查找换页符。
  \r    查找回车符。
  \t    查找制表符。
  \v    查找垂直制表符。
*/

// 量词
/*

*/

console.log('caandyazaaaa'.match(/a{1}/g))

const yuan_str_0 = '  J G s $ % ^ 2f & 9 % g _ - + =  '

const yuan_reg_1 = /\s/g
console.log(yuan_str_0.match(yuan_reg_1), yuan_str_0.match(yuan_reg_1).length) // [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ] 18


const yuan_reg_00 = /\W/g
console.log(yuan_str_0.match(yuan_reg_00)) // [ ' ', ' ', ' ', ' ', ' ', '$', ' ', '%', ' ', '^', ' ', ' ', '&', ' ', ' ', '%', ' ', ' ', ' ', '-', ' ', '+', ' ', '=', ' ', ' ']

const yuan_reg_0 = /\w/g
console.log(yuan_str_0.match(yuan_reg_0)) // [ 'J', 'G', 's', '2', 'f', '9', 'g', '_' ]


const yuan_str_1 = "Thish isn't a good idea !"

const yuan_reg_10 = /\bis/g
console.log(yuan_str_1.match(yuan_reg_10))

let text_b_0 = "HELLO, LOOK AT YOU"

// let pattern_b_0 = /\bLO/
// let pattern_b_01 = /LO\b/

// const pt = text_b_0.match(pattern_b_0)
// console.log(pt, pt.length, pt[0], pt.join()) // [ 'LO', index: 7, input: 'HELLO, LOOK AT YOU', groups: undefined ] 1 LO LO
// console.log(text_b_0.match(pattern_b_01))


let pattern_b_1 = /\BLO/
console.log(text_b_0.match(pattern_b_1));

let text_b_1 = `LOHELLO, LOOK LOAT YOU`
const pat1 = /^LO/mg
console.log(text_b_1.match(pat1)) // [ 'LO' ]

text_b_1 = `LOHELLO,
LOOK
LOAT YOU`
pat1 = /^LO/mg
console.log(text_b_1.match(pat1)) // [ 'LO', 'LO', 'LO' ]
pat1 = /OU$/
console.log(text_b_1.match(pat2)) // [ 'OU', index: 21, input: 'LOHELLO, \nLOOK\nLOAT YOU', groups: undefined ]


console.log('1234'.replace(/^|$/g, '❀')) // "❀1234❀"


var str = "Is this all is there isth"

// 匹配 后面紧跟" t"的is
var patt1 = /is(?= t)/
console.log(str.match(patt1))

// 匹配 后面没有紧跟" t" 的is
patt1 = /is(?! t)/
console.log(str.match(patt1))


patt1 = /(?=(\d{3})+$)/g
console.log( '12345678'.replace(patt1, ',') ) // 12,345,678
console.log( '123456789'.replace(patt1, ',') ) // ,123,456,789
console.log( '0.12345678'.replace(patt1, ',') ) // 0.12,345,678
console.log( '1234.12345678'.replace(patt1, ',') ) // 1234.12,345,678
console.log( '123456.12345678'.replace(patt1, ',') ) // 123456.12,345,678

console.log(/^123$/.test('   123   ')) // 
console.log(/^123$/.test('   124563   ')) // 
console.log(/^123/.test('12   1234563   ')) // 

console.log('object'.match(/[a-f]/g)); // [ 'b', 'e', 'c' ]
console.log('object'.match(/(a|b|e)/g)); // [ 'b', 'e' ]

console.log('object'.match(/t$/))

console.log('50'.match(/[1-6]/))
console.log('56'.match(/[1-5]6/))

var str = 'aaabbb';
var reg = /(a+)(?:b+)/;
var res = reg.exec(str);
console.log(res)
//["aaabbb", "aaa", index: 0, input: "aaabbb"]
//只捕获第一个小分组的内容


var str = 'aaabbb';
var reg = /(a+)(b+)/g;
var res = reg.exec(str);
console.log(res)

var str = '123aaa456';
var reg = /\d+/g;  //只捕获一次,一次尽可能多的捕获
var res = str.match(reg)
console.log(res)


var str = 'abc123cba456aaa789';
var reg = /\d+/g;
console.log(reg.exec(str))
// console.log(str.match(reg));
//  ["123", index: 3, input: "abc123cba456aaa789"];
console.log(reg.lastIndex)
// lastIndex : 0

console.log(reg.exec(str))
console.log(reg.lastIndex)

// exec
var str = '2017-01-05';
var reg = /-(\d+)/g
console.log(reg.exec(str));
// ["-01", "01", index: 4, input: "2017-01-05"]
// "-01" : 正则捕获到的内容
// "01"  : 捕获到的字符串中的小分组中的内容

var str = '2017-01-05'
var reg = /-\d+/g
console.log(reg.exec(str)) // [ '-01', index: 4, input: '2017-01-05', groups: undefined ]
console.log(reg.exec(str)) // [ '-05', index: 7, input: '2017-01-05', groups: undefined ]
console.log(str.match(reg)) // [ '-01', '-05' ]

var str = '2017-01-06';
str = str.replace(/-\d+/g, function () {
    console.log(arguments)
    // return '!!!'
})
console.log(str);

var str = "I am singing and dancing"
var reg = /\w+(?=ing)/g
console.log(str.match(reg))
var reg = /\w+(?!ing)/g
console.log(str.match(reg))

var str = 'abc'
var reg = /a(?=b)c/
console.log(str.match(reg));
console.log(reg.test(str));

str = 'abc bbc cbc aba'
reg = /\w+(?!c)/g
console.log(str.match(reg))

var str = 'nodejs abjs ab as'
var reg = /\w+(?!js)/g
console.log(str.match(reg))

console.log(
  '12345689.56'.match(/\d{2,3}/g)
) // 

var str = 'dasf¥998asf@888we'
var reg = /(?<=@)\d+/
console.log(reg.exec(str)) //888

var reg = /(?<!@)\d+/
console.log(reg.exec(str)) //888

var s = "abcdefghijklmn";
var r = /(\w)(\w)(\w)/;
r.test(s);
console.log(RegExp.$1);  //返回第1个子表达式匹配的字符a
console.log(RegExp.$2);  //返回第2个子表达式匹配的字符b
console.log(RegExp.$3);  //返回第3个子表达式匹配的字符c

 

标签:console,log,汇总,js,str,var,RegExp,reg,match
From: https://www.cnblogs.com/-roc/p/17296567.html

相关文章

  • JS生成随机颜色
    //传统写法functionrandomColor1(){varr=Math.floor(Math.random()*256),g=Math.floor(Math.random()*256),b=Math.floor(Math.random()*256);return`rgb(${r},${g},${b})`;}//取巧functionrand......
  • js数据遍历几种方式
    在JavaScript中,有多种方式可以遍历数据集,下面列出了常用的几种:for循环for循环是一种常见的遍历数据集的方式,可以用于遍历数组、对象等数据类型。例如:constarr=[1,2,3];for(leti=0;i<arr.length;i++){console.log(arr[i]);}constobj={a:1,b:2,......
  • h5 - pc 使用 pdf.js 预览pdf -配合文件流实现 - 遇到的坑总结
    1.pdf.js下载看我这篇随笔【h5-使用pdf.js预览pdf-岑惜-博客园(cnblogs.com)】2.html调用页面的局部代码<body><divstyle="height:100vh;margin:0auto"><iframestyle="height:100%;width:100%;border:none"id="fvic"src="&......
  • Spring Boot返回Json数据及数据封装
    1.1简介在项目开发中,接口与接口之间,前后端之间数据的传输都使用Json格式,在SpringBoot中,接口返回Json格式的数据很简单,在Controller中使用@RestController注解即可返回Json格式的数据,@RestController也是SpringBoot新增的一个注解,我们点进去看一下该注解都包含了哪些东西......
  • 小程序开发 JSON转换的使用
    前言  此篇博客讲解小程序的JSON使用,因为JavaScript与JSON泛用性太大。初学者很容易在JSON的使用上困惑。 字符串转JSON请注意,下面的字符串json是带引号的。jsonTest(){letjsonString="{\"id\":\"1\",\"name\":\"测试JSON\"}";letdata......
  • JS 字符串特殊字符全部替换空
    1、方法constformatStr=(str)=>{constvalue=str.replace(/[`:_~!@#$%^&*()\+=<>?"{}|,\/;'\\[\]·~!@#¥%……&*()——\+={}|《》?:“”【】、;‘’,。、-]/g,'',)returnvalue}2、实例......
  • [记录]php url传参json json_decode 后 null
    从APP端或从其他页面post,get过来的数据一般因为数组形式。因为数组形式不易传输,所以一般都会转json后再发送。本以为发送方json_encode(),接收方json_decode(),就解决的问题,结果发现,json_decode()后是NULL。一般会反应是少了一个参数“true”,但是回去看就是 json_decode($data,tru......
  • js 代码箱
    1<!--得出一个永远不会重复的日期格式的字符串,包括毫秒,用于AJAX输出一个不重复参数,以避免不刷新,function全部写在head节点内-->2<scripttype="text/javascript">3functiongetNowTime(){4vardate=newDate();5this.year=date.getFu......
  • 自制 js 的 trim、right、left、instrRev、instr、mid 函数
    //用惯了VB系列语法的instr和mid函数,在js里面处理字符串总是感觉束手束脚//跟Basic语法比起来,其他语言的字符串处理函数的确非常不方便!!!因此,必须自己写个仿Basic语法的javascript的常用字符串处理函数库来用!!!//以下是经过多次修正,便于js处理字符串的函数functi......
  • json-server
    一、简介    Node模块,运行Express服务器,可以指定一个json文件作为API的数据源。类似小型后台接口,在一个json文件中操作数据源,是基于node.js的一个模块。二、安装    npmijson-server-g   注:     1、i表示install,即安装;-g表示global,即全局......