正则表达式 用于定义一些字符串的规则,检查是否符合规则,获取字符串中符合规则的内容提取出来
test()用这个方法可以用来检查一个字符串是否符合正则表达式的规则,如果符合就返回true 否则就返回false
//var reg = new RegExp("a", "i");
reg = /a/i;
console.log(typeof reg);
console.log(reg.test("bc"));
创建正则表达式,检查字符中是否含有a或者b,使用|是表示或者的意思 【】也是或者的意思
[ab]==a|b [a-z]表示a-z任意小写字母 [A-Z]表示大写
reg = /[A-z]/ //表示所有字母
reg = /a[bd]c/ //检查一个字符串是否含有abc或者adc
reg = /[^ab]/ //除了ab
split()可以将字符串拆分为数组,默认全局拆分
这个方法中可以传递一个正则表达式作为参数,这样会根据正则表达式去拆分字符串
但是search方法只会查找第一个,没办法全局查找。
var str = "1a2b3d4r5t6y7q8s9o";
var result = str.split(/[a-z]/);
console.log(result);
str = "hello hi hello hi abc adc agc afc";
result = str.search(/a[bdf]c/); //search方法搜索符合条件的内容
console.log(result);
str = "1a2d3h4y5t6s7x8u9hdABCb"; //默认match只会找到第一个符合条件的内容找到以后就停止检索,
//match 会将匹配到的内容封装到一个数组中。
result = str.match(/[a-z]/gi); //但是我们可以设置为全局匹配模式,这样就可以匹配所有内容g 全局匹配,i忽略大小写
console.log(result);
//replace 将字符串中指定内容替换为新内容
result = str.replace("a", "@"); //但是默认只替换第一个,但是用正则表达式全局替换就可以了
result = str.replace(/[a]/gi, "@");
console.log(result);
/*
*.表示任意字符
*想要表示单纯的. 需要使用转义字符\
*\.表示.
*\\表示\
* 注意,在构造函数中\是转义字符,所以要用 \\来表示
* *\w表示任意字母数字,下划线
* \W 除了字母数字下划线
* \d任意数字
* \D除了数字
* \s空格
* \S除了空格
* \b单词边界
* \B除了单词边界
*/
var reg = /\./;
reg = new RegExp("\\.");
console.log(reg.test("abh\\hueuv.kouc"));
reg = new RegExp("\\\\");
console.log(reg.test("abbds\\gydgcscb"));
reg = /\bchild\b/;
console.log(reg.test("hello children"));
console.log(reg.test("hello child ren"));
/*创建一个正则表达式检查字符串中是否含有aaa*/
/*可以通过设置量词来查找*/
var reg = /a{3}/; //量词只对前面的一个内容有用
reg = /(ab){3}/;
reg = /ab{3}c/; //==/abbbc/b出现三次
reg = /ab{1,3}c/; //b出现1-3次
reg = /ab{3,}c/; //至少出现3次
reg = /ab+c/; //至少一个
reg = /ab*c/; //0个或多个
reg = /ab?c/; //0个或一个
//检查是否以a开头 ^
reg = /^a/;
console.log(reg.test("abgjshfief"));
reg = /a$/; //匹配结尾的a
console.log(reg.test("abgjshfief"));
reg = /^a$/; //这个只能是a
console.log(reg.test("abgjshfiefa"));
console.log(reg.test("a"));
reg = /^a|a$/;
console.log(reg.test("abgjshfiefa"));
//创建正则表达式,用来检查是否合法(比如手机号)
/*手机号规则
*以1开头
*第二位3-9
*三位以后任意数字9个
*/
var phoneNum = "13345678998";
var reg = /^1[3-9][0-9]{9}$/; //^ 和$是为了防止号码中出现
//不是数字的内容,要结果完全符合我们需要的
console.log(reg.test(phoneNum));
去除空格
var str = prompt("请输入用户名");
//去除开头的空格
//str = str.replace(/\s/g, "");
//console.log(str);
//str = str.replace(/^\s*/g, ""); //去掉开头0个或多个空格
//str = str.replace(/\s*$/g, ""); //去掉结尾0个或多个空格
str = str.replace(/^\s*|\s*$/g, "");
console.log(str);
</script>
检查电子邮箱格式
/*检查电子邮箱格式
*任意字母或者下划线, .任意字母数字下划线@
//任意字母shuzi .任意字母(2-5位) .任意字母(2-5位)
*\w{3,} (\.\w +)*@ [A-z0-9]+ ( \.[A-z]{2,5}){1,2}
*/
var emailReg = /\w{3,}(\.\w +)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}/;
var email = "ab77@qq.com";
console.log(emailReg.test(email));