js 正则方法以及支持正则的string对象方法。

在使用正则匹配之前,我们需要了解正则的方法或支持正则的方法。

支持正则表达式的string对象的方法

1.search  检索与正则表达式相匹配的值

2.match  找到一个或多个正则表达式的匹配

3.replace 替换与正则表达式匹配的子串

4.split 把字符串分割为字符串数组

之前一直以为replace是RegExp对象的方法,其实是字符串的方法,只是这些方法可以接受RegExp作为参数进行匹配操作。

RegExp对象方法有

1.compile (已废弃)

2.exec 检索字符串中指定的值。返回找到的值,并确定其位置

3.test  检索字符串中指定的值。返回 true 或 false

4.toString 返回正则表达式的字符串。

支持正则匹配的字符串方法

search()

可以接受一个字符串或RexExp对象作为参数,并匹配,匹配到则返回第一个在字符串中找到的位置,否则返回-1,不传参数则返回0

let reg = /\d/g;
let str = 'uio1'
str.search(reg);   //3
str.search("i");   //1

match()

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,将匹配到的字符以数组的形式输出出来。

let reg = /\D/g;
let str =  'The rain in SPAIN stays mainly in the plain';
str.match(reg) 
//输出 ["T", "h", "e", " ", "r", "a", "i", "n", " ", "i", "n", " ", "S", "P", "A", "I", "N", " ", "s", "t", "a", "y", "s", " ", "m", "a", "i", "n", "l", "y", " ", "i", "n", " ", "t", "h", "e", " ", "p", "l", "a", "i", "n"]

str.match(/ain/g) //输出 ["ain", "ain", "ain"];

replace()

这是比较常用的一个方法,用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。常用于属于框的限制(如只能输入数字,只能输入汉字等);

replace(searchvalue,newvalue)
接受两个参数
searchvalue: 必须,规定子字符串或要替换的模式的 RegExp 对象。
请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象
newvalue:必需。一个字符串值。规定了替换文本或生成替换文本的函数。

也就是searchvalue是查找到到值,newvalue是替换到值

let reg = /\d/g;
let str = 'f1432fg';
str.replace(reg, '');  //ffg,将查找到的数字替换为空
str.replace(reg, 'g'); //fggggfg, 将查找到到数字替换为g

let reg1= /\D/g;
str.replace(reg1, '');  将所有非数字字符替换为空,也就是只能输入数字。

split()

用于把一个字符串分割成字符串数组

string.split(separator,limit)
separator:可选。字符串或正则表达式,从该参数指定的地方分割 string Object。
limit:	可选。该参数可指定返回的数组的最大长度。如果设置了该参数,
返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,
不考虑它的长度。

let str = 'How are you doing today?'

str.split(' ') //以空格划分 ["How", "are", "you", "doing", "today?"]
str.split() //字符串转换为数组 ["How are you doing today?"]
str.split('') 
//每一个字符转换为数组项 ["H", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u", " ", "d", "o", "i", "n", "g", " ", "t", "o", "d", "a", "y", "?"]

//传入正则
let reg = /\d/g;
let str1 = 'oiu1fou4f'
str1.split(reg)  //以数字划分 ["oiu", "fou", "f"] 

RegExp对象的方法

exec(string)

用于检索字符串中的正则表达式的匹配。

如果字符串中有匹配的值返回该匹配值,否则返回 null

let str = 'Hello world! Hello'
let reg = /Hello/g
reg.exec(str)  //["Hello", index: 0, input: "Hello world! Hello", groups: undefined]

reg = /hello/g
reg.exec(str)  //null

test(string)

用于检测一个字符串是否匹配某个模式.

如果字符串中有匹配的值返回 true ,否则返回 false。

常用于检测输入格式是否正确。例如检测是否是邮箱,是否是手机号码

let str = 'hello world';
let reg = /\d/g

reg.test(str) //false
reg = /\D/g
reg.test(str) //true

 

toString()

let reg = /\d/g;
reg.toString() // 输出 /\d/g;

正则验证

更多详细请参考:https://blog.csdn.net/qq_39706019/article/details/81478059

手机号码验证:1.手机号码必须是11位数字,2.必须是以1开头,3.第二位数不能是0、1或2。

所以可以像下面这样写

let reg = /^1[3456789]\d{9}$/

^1 表示一数字1开头
[3456789] 表示第二位数必须是3-9中的一个
\d{9} 表示第二位数后面紧跟着9位数字 
n$ 表示以n结束。这里的n是数字。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值