1)正则表达式
\s表示的是空格、换行符。
\S表示的正好相反是除了空格和换行符之外的。
\w可以表示非换行、空格、特殊符号;只匹配字母和数字。
\W表示的正好跟 \w 相反,专门表示换行符、空格和特殊字符。
\d表示的是一个数字。
\D表示的是非数字。(匹配字母,空格、换行符、特殊符号等)
\b表示单词的边界(开始或者结束)。
\B表示非单词的编辑(开始或者结束)。
{2}表示重复两次。
{2,}表示至少重复两次。
{2,3}表示重复两次到三次。
[ab]表示匹配任何一个或者a或者b(没有ab)。
[a-z]表示匹配a-z之间的任何一个字符。
[A-Z]表示匹配A-Z之间的任何一个字符。
[A-Z,a-z,1-9] 表示匹配1-9之间的任意数字(包含首位)、a-z之间的字母和A-Z之间的字母。
[^abc]表示匹配除了abc之外的任意字符。
.表示的是任意字符。
*表示的是任意次数。如123,\d表示的是一个字符【1】,【2】,【3】,那么\d*表示的就是【123】。
^表示开头(不会打断单词,中间有空格也会认为是一个整体)。
$表示结尾(不会打断单词,中间有空格也会认为是一个整体)。
+表示至少一位跟{1,}实现的效果一致。
?表示0到一位,实现的效果跟{0,1}一致。
|表示或者的意思,如ab|66 ,匹配ab或者 66.
检测一个值是否符合表达式的验证标准的时候我们可以使用test方法,eg:
var a = "aaa124cc";
var regex = /^a{3}\d{3}c{2}$/;
if (regex.test(a)) {
console.log('通过');
} else {
console.log('没通过');
}
2)substr、slice、substring区别。
/*字符串截取*/
var str = "hello world";
//都有一个参数而且参数为正数的时候,都是从这个位置开始一直截取到最后。
console.log(str.substring(1));
console.log(str.slice(1));
console.log(str.substr(1));
//都有两个参数的时候,substring 和 slice会截取第一个字符,不会截取最后的字符。substr是会从第一个字符位置开始,截取两位。
console.log(str.substring(1, 2));
console.log(str.slice(1, 2));
console.log(str.substr(1, 2));
//都有一个参数而且为负值的时候,slice 和 substr 会逆向截取字符。substring是把负值变成0,不管是一个参数还是两个参数只要是有负值那么
//就会认为是0,然后取小的一个作为开始,大的那个作为结尾。
console.log(str.substring(-2));//如果参数为负值,它会自动的改变成0,不管是有一个参数还是两个参数。
//下面四句话实现的效果相等
console.log(str.substring(-2, 1));
console.log(str.substring(1, -2));//会自动取小的值放在第一个位置,作为开始,取大的值作为结尾。
console.log(str.substring(1, 0));
console.log(str.substring(0, 1));
console.log(str.slice(-2));//从后面开始计算,取两位
console.log(str.substr(-2));//从后面开始计算,取两位
console.log("*******************************************************************");
//下面只考虑slice和substr这两种情况。
console.log(str.slice(1, -2));//从后面开始计算,取两位
console.log(str.slice(1, -1));//从后面开始计算,取一位
console.log(str.slice(-1, -2));//取不到值,后面的值不能比前面的值大。
console.log(str.slice(-2, -1));//后面的值必须比前面的大,否则返回的还是空值。
console.log(str.substr(1, -2));//第二个参数表示的是要截取的字符串的长度,如果是0或者为负数的话,那么返回空字符串。