正则表达式
创建正则表达式
有两种方法来创建匹配模式,如下:
通过 RegExp 对象创建
var reg = new RegExp("a","i");
使用字面量创建
// 不用加引号 var reg = /a/i;
两者的区别如下:
var reg = new RegExp("\\.");
// 等价形式如下
var reg = /\./;
test()
检索字符串中指定的值,返回 true 或 false。
var reg = new RegExp("a");
var str = "abc";
console.log(reg);
console.log(reg.test(str)); // true
匹配模式
或
var reg = /a|b|c/; // /[a|b|c]/或者/[abc]/ 或者 /(a|b|c)/
是否含有字母
reg = /[A-Z|a-z]/; reg = /[a-z]/i; reg = /[A-z]/;
除掉某个字符
reg = /[^ab]/; // 匹配除了 ab 以外字符。 reg.test("cab"); // true
任意数字
reg = /[0-9]/;
是否含有某个子串
reg = /abc/;
{ }
- n{ X } 匹配包含 X 个 n 的序列的字符串。
- n{ X, Y } 匹配包含 X 至 Y 个 n 的序列的字符串。
- n{ X, } 匹配包含至少 X 个 n 的序列的字符串。
reg = /a{3}/; console.log(reg.test("aaaaaa12346"));
reg = /(ab){3}/; console.log(reg.test("abababa12346"));
\w
任意字母、数字、下划线。
\W
和 \w 相反。
\b
通常用来检查是否含有某个单词。
reg = /\bchina\b/;
是否全是数字
reg = /^\d{3}$/; console.log(reg.test("123m"));
只含有某个数字
reg = /^\d$/; console.log(reg.test("1"));
去掉前后的空格
// 使用 tirm() console.log(" 1 3 ".trim()); // 使用正则表达式 console.log(" 1 3 ".replace(/^\s*|\s*$/g,"")); // console.log(" 1 3 ".replace(/^\s+|\s+$/g,""));
判断是否全是空格
console.log(" ".replace(/^\s*$/,"") == ""); // console.log(" ".replace(/^\s+$/,"") == "");
检查手机号
reg = /^1([358]\d|4[01456789]|6[2567]|7[012345678]|9[012356789])\d{8}$/; console.log(reg.test("15023456789"));
检查邮箱
reg = /^\w+([-\.]\w+)*@[A-z\d]+(\.[A-z\d]{2,6}){1,2}$/; console.log("邮箱: "+reg.test("ddd-2@qq.com.cn");