首页 > 编程语言 >【JavaScript11】正则表达式 RegExp对象

【JavaScript11】正则表达式 RegExp对象

时间:2023-08-06 19:11:20浏览次数:40  
标签:console log 匹配 正则表达式 JavaScript11 ret 字符串 var RegExp

定义

  • 正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。

创建 RexExp 对象

  • 有两种方式创建RexExp对象
    • 第一种:使用字面量创建 RegExp 对象的语法:
    • 第二种:使用 new 创建RegExp对象的语法:
var p = /pattern/attributes;
var p = new RegExp(pattern, attributes);
  • 参数释义
    • 1.参数pattern是一个字符串,指定了正则表达式的模式或其他正则表达式。
    • 2.参数attributes是一个可选的模式字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、不区分大小写的匹配和多行匹配。

var p = /hello/gi;
console.log(p.global);     //true
console.log(p.ignoreCase); //true
console.log(p.multiline);  //false
console.log(p.lastIndex);  //0
console.log(p.source);     //hello

正则表达式语法

// {n}  出现n次
// {m,n}  出现m次到n次
// {n,}  出现n次以上
// +     至少出现一次
// *     出现0次或者一次以上
// ?     出现0次或者1次
// ^     表示开头
// $     表示结尾
// [^abc]   除了abc以外的所有字符
// |       或

// .      匹配任意字符
// \w     匹配任意字母、数字、"_"
// \W     匹配除了字母、数字、"_"
// \d     匹配数字[0-9]
// \D     匹配数字[^0-9]的任意字符
// \s     匹配空格
// \S     匹配除了空格的任意字符

RegExp对象方法

  • RegExp对象有3个方法:test()、exec()以及compile()。

    • test():检索字符串中的指定值,返回值是true或false
var s = 'hello4352rwerlerwertr32423';
var p = /hello/;
ret = p.test(s);
console.log(ret);   true
  • exec():检索字符串中的指定值,返回值是存有匹配字符串的数组;如果没有发现匹配,则返回null。
var s = 'hello4352rwer21312lerwertr32423';
var p = /[0-9]{4}/;
ret = p.exec(s);
console.log(ret);

  • compile():用于改变正则表达式,compile()既可以改变检索模式,也可以添加或删除第二个参数
	var s = 'hello4352rwer21312lerwertr32423';
	var p = /[0-9]{4}/;
	ret = p.test(s);
    console.log(ret);    //true
    
    p.compile('\d{11}');
	ret1 = p.test(s);
    console.log(ret1);   //false

String对象的正则方法

  • search() 方法
    • search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。如果找到,则返回与指定查找的字符串或者正则表达式相匹配的 String 对象起始位置。
var x = 'hello world!'
// 可以search 字符串
console.log(x.search('hello'));   // 0  返回起始位置
// 也可以search  RegExp 对象
console.log(x.search(/hello/));   // 0  返回起始位置
console.log(x.search(/world/));   // 6
  • replace() 方法
    • replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
	var s = 'hello4352rwer21312lerwertr32423';
	var p = /\d{4}/;
	ret = s.replace(p,'xwl');
    console.log(ret)    //helloxwlrwer21312lerwertr32423

  	var s = 'hello4352rwer21312lerwertr32423';
	var p = /\d{4}/g;
	ret = s.replace(p,'xwl');
    console.log(ret)    //helloxwlrwerxwl2lerwertrxwl3
  • match() 方法
    • 注意: match() 方法将检索字符串 String Object,以找到一个或多个与 regexp 匹配的文本。
    • 这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。
    • 如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。
	var s = 'hello4352rwer21312lerwertr32423';
	var p = /\d{4}/;
	ret = s.match(p);
    console.log(ret);    //['4352', index: 5, input: 'hello4352rwer21312lerwertr32423', groups: undefined]
	
	var s1 = 'hello4352rwer21312lerwertr32423';
	var p1 = /\d{4}/g;
	ret1 = s.match(p1);
    console.log(ret1) ;  //['4352', '2131', '3242']
  • split() 方法
    • split() 方法用于把一个字符串分割成字符串数组。
	 var s = 'hello4352rwer21312lerwertr32423';
	 a = s.split(/\d{4}/);
    console.log(a);    //['hello', 'rwer', '2lerwertr', '3']

标签:console,log,匹配,正则表达式,JavaScript11,ret,字符串,var,RegExp
From: https://www.cnblogs.com/xwltest/p/17609770.html

相关文章

  • 正则表达式
    正则表达式常用于在给定的字符串中查询、提取、替换指定的特征值。元字符:元字符可以用于匹配一些特殊规则。1、元字符..可以匹配任意一个字符,但是不能用于匹配换行符。例:x.o,代表匹配“以x开头,之后是一个任意字符,紧跟着是字母o”的字符串。x.o这样的正则表达式,可以匹配xxo、......
  • 正则表达式
    你有一个思想,我有一个思想,我们交换后,一个人就有两个思想Anysufficientlyadvancedtechnologyisindistinguishablefrommagic.表达式释义字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n......
  • 正则表达式 随笔
    1.通配符\d数字\D反之\w数字字母下划线\W反之\s空格制表符\S反之\b匹配一个零宽单词边界,如一个字母与一个空格之间。s代表一个字符但b是定位符.任意单个字符2.自定义通配符[abcd]单个字符abcd[0-9a-z]单个字符0到9a到z[0-]单个字符......
  • Scala——文件和正则表达式
    读取文件importscala.io.Sourcevalsource=Source.fromFile(fileName,"UTF-8")//第一个参数可以是文件名或java.io.File//如果没有第二个参数将会使用当前平台缺省的字符编码vallineIterator=source.getLines//结果是一个迭代器//迭代器可以......
  • 最常用的详细正则表达式大全
    最常用的详细正则表达式大全正则令人头疼,很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。此篇文章是正则实例,正则表达式......
  • 【jmeter系列】仅一次控制器+正则表达式用法详解
    一、仅一次控制器做性能测试经常遇到这样的问题:要做接口压力测试,但是需要登录接口返回的token,但是不需要对登录接口进行压测,这个时候jmeter仅一次控制器就起到了关键性的作用。具体操作如下:1、添加仅一次控制器,并在控制器下添加登录接口 2、登录接口返回响应数据-Responesb......
  • 正则表达式在JavaScript的使用
    正则表达式引入:邮件格式的匹配介绍检查字符串是否符合某些规则使用规则基本语法:构造函数方式:let变量=newRegExp("正则表达式","匹配模式")(更灵活)字面量方式:let变量=/正则表达式/匹配模式(更方便)匹配模式(可以有多个,且顺序无所谓):i忽略大小写g全......
  • oracle正则表达式
    oracle正则表达式oracleregexp参考:https://zhuanlan.zhihu.com/p/449885289基础数据CREATETABLEREG_EXP_TEST(IDVARCHAR2(50));INSERTINTOREG_EXP_TEST(ID)VALUES('GGG545445HHH46,454?4545FDSFD@#@#@!#GHG');INSERTINTOREG_EXP_TEST(ID)VALUES('JoeSmit......
  • 使用正则表达式 移除 HTML 标签后得到字符串
    需求分析后台返回的数据是这样式的需要讲html标签替换high_light_text:"<spanstyle='color:red'>OPPO</span><spanstyle='color:red'>OPPO</span>白色01"使用正则表达式functionstripHTMLTags(htmlString){returnhtmlString.repl......
  • 09通过正则表达式提取电影名称
    importrequestsimportrefromtimeimportsleep#目标电影网;https://nnyy.best/,爬取电影名字做测试。res=requests.session()headers={'authority':'nnyy.best','cache-control':'max-age=0','upgrade-insecur......