JavaScript 正则表达式 总结

正则表达式!!!!

var myregex = new ReExp("[0-9]");    //实例创建方式
var myregex = /[0-9]/g;    // 字面量创建方式
str.search() 方法
var str = "Visit Runoob!"; 
var n = str.search(/Runoob/i);    //  不区分大小写, 输出  6 
str.replace() 方法
replace() 方法使用正则表达式
var str = document.getElementById("demo").innerHTML; 
var txt = str.replace(/microsoft/i,"Runoob");   //  Visit Runoob!

replace() 方法使用字符串
var txt = str.replace("Microsoft","Runoob");
str.match(reg) 如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null
var str = 'abc123cba456aaa789';
var reg = /\d+/;
console.log(str.match(reg));  //["123", index: 3, input: "abc123cba456aaa789"]

var reg = /\d+/g;
console.log(str.match(reg));  // ["123", "456", "789"]
reg.test(str) 用来验证字符串是否符合正则 符合返回true 否则返回false
var patt = /e/;
patt.test("The best things in life are free!");  // true

/e/.test("The best things in life are free!")   // true
reg.exec() 用来捕获符合规则的字符串
var str = 'abc123cba456aaa789';
var reg = /\d+/;
console.log(reg.exec(str))
//  ["123", index: 3, input: "abc123cba456aaa789"];
0:"123" 表示我们捕获到的字符串
index:3 表示捕获开始位置的索引
input 表示原有的字符串
----------------------------------------------------
没有加'g'标识符,则exec结果为同一个,当有'g'标识符时 捕获的结果不一样

正则语法

元字符

\d	匹配数字,相当于[0-9]
\D	匹配非数字,相当于[^0-9]
\w	匹配字母或数字或汉字或下划线
\W	匹配任意不是字母、数字、汉字或下划线的字符
\s	匹配任意的空白符,如空格、换行符、制表符等
\S	匹配任意不是空白符的字符
.(点号)	匹配除了换行符以外的任意字符
[...]	匹配方括号中的所有字符
[^...]	匹配非方括号中的所有字符

限定符

+	重复1次或更多次
*	重复0次或更多次(任意次数)
?	重复0次或1次(最多1次)
{n}	重复n次
{n,}	重复n次或更多次(最少n次)
{n,m}	重复n到m次

修饰符

i	执行对大小写不敏感的匹配。
g	执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m	执行多行匹配。

例子

给一个连字符串例如:get-element-by-id转化成驼峰形式

var str = "get-element-by-id";
var reg = /-\w/g; // 匹配横杆以及之后的一个字符,全局匹配
console.log(str.replace(reg,function($0){
    return $0.slice(1).toUpperCase();
    // 匹配到到是-e -b -i 形式截取后一个字符转成大写 
}));

分割数字每三个以一个逗号划分

var str = "12345678901";
function numSplit(str){
    var re = /(\d)(?=(\d{3})+$)/g;
    //(\d{3})+$ 的意思是连续匹配 3 个数字,且最后一次匹配以 3 个数字结尾。
    //要找到所有的单个字符,这些字符的后面跟随的字符的个数必须是3的倍数,并在符合条件的单个字符后面添加,
    return str.replace(re,'$1,');
}
console.log(numSplit(str));

验证邮箱

function isEmail(email) {
    var regx = /^([a-zA-Z0-9_\-])+@([a-zA-Z0-9_\-])+(\.[a-zA-Z0-9_\-])+$/;
    return regx.test(email);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值