一、正则表达式
位置: ^ 开头 $ 结尾
次数:
-
0或多个 + 1或多个 ? 0或1个 {n} 就是n个 {n,} 至少n个 {n,m} 最少n个,最多m个
通配符:
\d 任意数字
\D 任意非数字
\s 任意空白
\S 任意非空白
. 任意字符(除'\n'外)
组合:
[a-z]
[0-9]
组:
(正则) 匹配括号中正则表达式对应的结果,并暂存这个结果。
(?:正则) 匹配括号中正则表达式对应的结果,但不暂存这个结果。
\数字 使用第n个组匹配的结果
使用正则的工具(RegExp类与相关方法)
创建:
// 方式一
var regex = new RegExp("正则表达式", "标志");
var regx=/[a-zA-Z0-9]+/i; //i不区分大小写的匹配 g 全文匹配
// 方式二
var regex = /正则表达式/标志
var regx=new RegExp("[a-zA-Z0-9]","i");
案例:
var regx=/^[a-z]+$/; //加上开头和结尾 整体去匹配
//匹配方法 test()
var f=regx.test("aAc"); //test() 传入一个字符串,看这个字符串符不符合我定义的这个正则对象
alert(f);
参数说明:
正则表达式:
参见上面的规则
标志:
g (全文查找出现的所有 pattern)
i (忽略大小写)
方法:
Regexp.test( str )
String.replace( regex, str )
正则表达式对象常用的方法:
test() 使用正则对象去匹配字符串 如果匹配成功返回ture,否则返回false.
exec() 根据正则表达式去查找字符串符合规则的内容。
模式:
g (全文查找出现的所有 pattern)
i (忽略大小写)
var str = "hello123";
var reg = /^[A-Z0-9]+$/i;
alert("匹配吗?"+reg.test(str));
}
案例一:查找出三个字符组成的单词
var str ="da ABC jia hao hao xue xi a";
var regx=/\b[a-z]{3}\b/gi; //g 全文匹配 i 不区分大小写
var str2=regx.exec(str); 根据正则截取出符合正则的数据,需要你注意的是全文匹配
alert(str2);
str2=regx.exec(str);
alert(str2);
var line=null;
while((line=regx.exec(str))!=null){
alert(line);
}
案例二:通过正则把符合条件的数据放在数组总
1.字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。
2.它将在 stringObject 中查找与 regexp 相匹配的子字符串,
3.然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,
4.那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。
var str="abc=bbb=ccc";
var regx=/=/g;
var arr=str.split(regx);
arr.forEach(function(ele){
alert(ele);
});
var str2="abc=bbb=ccc";
var str3=str2.replace(regx,"#"); //替换的时候,注意模式要全文匹配
alert(str3);
var str="Visit W3School!";
document.write(str.search("W3School"));
var str6="abc bbb ccc ddd eee aa c e";
var v=str6.match(/[a-z]{3}/g); //把符合正则的数据获取到数组中,需要注意的是你要不要全文匹配
alert(v);
var str = "1 plus 2 equal 3"
document.write(str.match(/[0-9]+/g));
二、 Array数组
JS中数组的两个特点 1.数组长度可变。2,可以存储多种数据类型
var arr=new Array();
arr.push(1)
var arr2=new Array(5);
var arr3=new Array(10,30,50);
//简写
var arr4=[1,3,5,6,10];
//ES6 中对于数组对象,新增加了一些方法
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var fhz=fruits.entries();
//var k=fhz.next().key;
var k=fhz.next().value;
alert(k[0]);
alert(k[1]);
arr.push(10); //往数组的后面添加元素
arr.unshift(100);//往数组的前面添加元素
alert(arr);
isArray() //判断对象是否为数组。
alert(arr instanceof Array);
alert(Array.isArray(arr));
filter() //过滤数组中符合要求的元素到新的数组中
map() //提取数组中的每个元素,应用到新的方法上,处理后放到一个新的数组中。
reduce() //将数组元素计算为一个值(从左到右)。
var arr= ["Banana", "Orange","Banana"];
var newAarr=arr.filter(function(ele){
return ele.startsWith("B");
})
alert(newAarr);
var arr= ["aaa", "bbb","cdd"];
var arr2=arr.map(function(ele){
return ele.toUpperCase();
});
alert(arr2);
var arr=[10,20,40,40,50];
var sum=arr.reduce(function(a,ele){
return a+ele;
});
alert(sum);
every() //检测数组元素的每个元素是否都符合条件。
some() //检测数组元素中是否有元素符合指定条件。
本文主要介绍JavaScript中的正则表达式,包括位置、次数、通配符等概念,以及正则表达式的创建和常用方法。同时,讲解了数组对象的特点,如长度可变和能存储多种数据类型,并提供了replace()方法在处理字符串时的应用实例。

被折叠的 条评论
为什么被折叠?



