ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript(JS) 0基础快速入门 (九)(正则表达式的使用)

2022-02-20 22:32:47  阅读:162  来源: 互联网

标签:正则表达式 javascript JS str var 任意 reg match


正则表达式

根据正则表达式,来检查一个字符串是否符合规则,

将字符串中符合规则的内容提取出来

创建正则表达式的对象

var XXX = new RegExp(" 正则表达式 “,” 匹配模式 ");

  • 第二个参数
    • i 忽略大小写
    • g 全局匹配模式
var reg = new RegExp (/d/,'g') //  匹配任意数字【0-9】全局匹配

正则表达式的方法

正则的对象 .test(" String ")

var reg = new RegExp (/d/,'g') //  匹配任意数字【0-9】全局匹配
console.log(reg.test('2312Strsds'));  // true

使用这个方法可用来检查一个字符串是否符合正则表达式的规则

  • 如果符合则返回true,否则返回false

使用字面量的方式创建正则表达式

var XXX = /正则表达式/匹配模式

var  reg  = /a/i;  // 忽略大小写匹配 a

使用字面量创建的更加简单

但是使用构造函数创建的会更加灵活

正则表达式的运用

  • / a|b/ 表示a 或者 b
  • 【】里的内容也是或的关系
  • 【ab】 == a | b
  • 【a-z】任意小写字母
  • 【A-Z】任意大写字母
  • 【A-z】任意字母
  • 【^】除了
  • 【0-9】任意数字

正则表达式与字符串的运用

split()

  • 可以将一个字符串拆分为一个数组,并返回

  • 方法中可以传递一个正则表达式作为参数,这样方法会根据正则表达拆分字符串

    var result = str.split( /[A-z]/ );根据任意字母拆分字符串

var reg = /[A-z]/
console.log('23ds23ads15'.split(reg)); //["23", "", "23", "", "", "15"]

若是使用正则包含块,则可以将分割的字符也一起保留

var reg = /([A-z])/  //  用了() 包裹住要保留的分割符
console.log('23ds23ads15'.split(reg)); // ["23", "d", "", "s", "23", "a", "", "d", "", "s", "15"]

search()

  • 可以搜索字符串是否有指定内容
  • 如果搜到则返回第一次出现的索引,没搜到则返回-1
  • search 只会搜第一个,加全局也没用
var reg = /[A-z]/
console.log('23ds23ads15'.search(reg)); // 2

match()

可以根据正则表达式,从一个字符串中将符合条件的内容提取出来

默认情况下match只会找到第一个符合要求的就停下来

  • 但是可以通过设置为全局作用域/g ,这样就会匹配所有符合的内容
  • 可以设置多个匹配模式,顺序随意

match()会将匹配到的内容封装到一个数组中返回,即使之查询到一个结果

//   默认情况下match只会找到第一个符合要求的就停下来
var str = "213213asdasdasd13213";
var result = str.match(/[a-z]/);
console.log(result);  
//["a", index: 6, input: "213213asdasdasd13213", groups: undefined]

设置了全局作用

var str = "213213asdasdasd13213";
var result = str.match(/[a-z]/gi);  //  设置全局匹配,并且忽略大小写
console.log(result); // ["a", "s", "d", "a", "s", "d", "a", "s", "d"]

replace()

可以将字符串中指定内容替换为新的内容

参数1.被替换的内容 2、新的内容

  • 默认替换第一个,
  • 也可以加上 /g 全局替换
var str = "213213asdasdasd13213";
var result = str.replace("a"  ,  "_");
//   213213_sdasdasd13213  只替换一个
var str = "213213asdasdasd13213";
var result = str.replace(/[a-z]/g,  "_");
//  213213_________13213  全部字母替换

正则表达式的语法

量词

通过量词可以设置内容出现的次数

  • { n }正好出现n次
  • {m , n}正好出现m-n次
  • {m, }出现m次以上
  • + 至少一个,相当于{1, }
  • * 0个或多个,相当于{0, }
  • ? 0个或1个,相当于{0 , 1}
//  `+`   至少一个,相当于{1,  }
var str = '123sage235wis'
var reg = /[a-z]+/g   
str.match(reg) //  ["sage", "wis"]

// `*`  0个或多个,相当于{0,  }
var str = '123sage235wis'
var reg = /[a-z]*/g
str.match(reg)  //  ["", "", "", "sage", "", "", "", "wis", ""]

// ?    0个或1个,相当于{0  , 1}
var str = '123sage235wis'
var reg = /[a-z]?/g
 str.match(reg)   //  ["", "", "", "s", "a", "g", "e", "", "", "", "w", "i", "s", ""]

检查一个字符串是否以a开头

  • ^ 表示开头
  • $ 表示结尾

同时用 ^ $ 则表示要完全一样

手机号的规则:1、以1开头,2、第二位3-9任意数,3、三位以后任意数字9个

var phone = /^1[3-9] [0-9] {9}$/   //  以1开头第二位要求[3-9]随后的第三位以后[0-9]{9} 任意9个并且数字结尾

正则表达式语法2

语法缩写

正则表达式中

. 来表示任意字符

\w 任意字母、数字、_ 相当于 [A-z0-9_]

\W 除了字母、数字、_ 相当于 [^A-z0-9_]

\d 任意数字 相当于 [0-9]

\D 除了数字 相当于 [^0-9]

\s 空格 相当于 / /g

var str = '123s age235 wis'
var reg = / /g
str.match(reg)  //  [' ',' ']

\S 除了空格

\b 单词边界

var str = '123s age 235 age22'
var reg = /\bage\b/g
//  ['age']  age22 不会输出因为不符合 单词边界条件

\B 除了单词边界

标签:正则表达式,javascript,JS,str,var,任意,reg,match
来源: https://blog.csdn.net/m0_52409770/article/details/123037015

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有