一、复习字符串操作
search 查找
substring 获取子字符串
charAt 获取某个字符串
split 分割字符串,获得数组
1>找出字符串中的所有数字 '12 fff 87 er234 234 --=-054=-'
未用正则表达式
let str = '12 fff 87 er234 234 --=-054=-';
let tmp = '';
let resArr = [];
for(let i=0;i<str.length;i++){
if(str.charAt(i)>='0' && str.charAt(i)<='9'){
//说明是数字 当然可以isNaN
tmp += str.charAt(i);
}else{
if(tmp){
resArr.push(tmp);
tmp='';
}
}
}
if(tmp){
resArr.push(tmp);
}
console.log(resArr);
用正则表达式
let str = '12 fff 87 er234 234 --=-054=-';
console.log(str.match(/\d+/g))
二、什么是正则表达式
/*
##什么叫"正则"
###规范、模式
##强大的字符串匹配工具
##是一种正常人类很难读的文字
##RegExp对象
###JS风格-------new RegExp('a','i')
###perl风格--------/a/i
*/
//正则常用的方法(字符串与正则配合)
match :{
把所有匹配的东西,全部提取出来
例子:{
let str = '12 fff 87 er234 234 --=-054=-';
console.log(str.match(/\d+/g))//打印所有的数字
}
}
replace :{
替换所有匹配
返回替换后的字符串
例子:{
//敏感词过滤
let str = '北京、上海、南京、武汉、长春、天津、大连'
console.log(str.replace(/北京|天津/g,'xx'))
//去除html标签
let str = '';//带有html标签的字符串
let re = /<[^<>]+>/g //标签中除了<>以外的任意字符
console.log(str.replace(re,''))
}
}
test:{
字符串一部分符合要求?返回true:返回false;
例子:{
let str = '';//任意字符
let re = /^\w+@[a-z0-9]+\.[a-z]+$/i;//校验邮箱
console.log(re.test(str))
}
}
三、字符串
/*
#任意字符
##[abc]
###例子:o[usb]t-------out、ost、obt
#范围
##[a-z]、[0-9] 分别代表小写字母,0~9数字
###例子:id[0-9]------- id0~id9
#排除
##[^a]
###例子:o[^0-9]t------oat、o?t、o t 等等只要中间位置不是 0~9
#组合
##[a-z0-9A-Z]
#转义字符
{
##.(点)------任意字符
##转义字符 解释 代码翻译
##\d 数字 /[0-9]/
##\w 英文、数字、下划线 /[a-z0-9_]/i
##\s 空白字符
##\D 非数字 /[^0-9]/
##\W 非英文、数字、下划线 /[^a-z0-9_]/
##\S 非空白字符
}
#量词
##什么是量词
###出现的次数
###{n,m}至少出现n次,最多m次
###例子:查找QQ号
#常用量词
##{n,} 至少n次
##* 任意次{0,}
##? 零次或者一次{0,1}
##+ 一次或任意次{1,}
##{n} 正好n次
#表单校验实例
{
固定电话
010-98745644
(0\d{2,3}-)?[1-9]\d{7}
}
##校验邮箱
{
一串英文、数字、下划线 @ 一串英文、数字 . 一串英语
/^\w+@[a-z0-9]+\.[a-z]+$/i
}
##行首 ^ 字符串开头
##行尾 $ 字符串结尾
*/
常用正则例子
匹配中文字符 /[\u4e00-\u9fa5]/