1、字符串匹配
方法一: // var str = 'I love Js'; // var pattern = /js/i; // console.log(pattern.test(str)); //test测试匹配是否成功 // console.log(pattern.exec(str)); //找到的字符串以数组形式展示给我们 //模式修饰符 //i ignoreCase 忽略大小写 //g global 全局匹配 //m multiline 多行匹配
方法二: var str = "I love js"; var pattern = new RegExp("js"); console.log(pattern.test(str)); console.log(pattern.exec(str));2、创建正则表达式
一般情况下,使用字面量方式;/js/i --此方法写好之后不能改变
构造方式有点笨重和复杂;new RegExp('js','i') --此方法可以通过参数随意改变;可以通过用户输入判断正则表达式,
// var str = 'I love js'; // var userInput = 'love'; // var pattern = '/' +userInput +"/i"; // console.log(typeof pattern); //错误写法 var str = 'I love js'; var userInput = 'love'; var pattern = new RegExp(userInput,'i'); console.log(pattern); console.log(typeof pattern); console.log(pattern.exec(str));3、正则表达式匹配小工具
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> #regexp{ width:650px; margin:100px auto; font-size:14px; } #regexp .title{ font-size:24px; color:#777; text-align:center; } #regexp .textbox{ width:650px; height:150px; border:1px solid #ccc; border-radius:5px; padding:5px; resize:none; /*不能被拖动*/ } #regexp .textfield{ width:215px; padding:5px; border:1px solid #ccc; } </style></head><body> <div id="regexp"> <h1 class="title">正则表达式测试工具</h1> <textarea id="userText" class="textbox" placeholder="在此输入需要匹配的文本"></textarea> <p> 正则表达式: <input type="text" id="userRegExp" class="textfield" placeholder="在此输入正则表达式"> <input type="checkbox" name="userModifier" value="i">忽略大小写 <input type="checkbox" name="userModifier" value="g">全局匹配 <input type="checkbox" name="userModifier" value="m">多行匹配 <input type="button" id="matchingBtn" value="测试匹配"/> 匹配结果: <textarea id="matchingResult" class="textbox" disabled="disabled"></textarea> </p> </div> <script> var userText = document.getElementById('userText'), userRegExp = document.getElementById('userRegExp'), userModifier = document.getElementsByName('userModifier'), matchingBtn = document.getElementById('matchingBtn'), matchingResult = document.getElementById('matchingResult'); var pattern, modifier = ''; for (var i = 0; i <userModifier.length; i++) { userModifier[i].onclick = function(){ modifier = ''; for(var j = 0; j <userModifier.length; j++) { if (userModifier[j].checked) { modifier += userModifier[j].value; } } } } matchingBtn.onclick = function() { if(!userText.value){ alert("请输入待匹配的文本"); userText.focus(); return; } if (!userRegExp.value) { alert("请输入正则表达式"); userRegExp.focus(); return; } pattern =new RegExp(userRegExp.value, modifier); matchingResult.value =pattern.exec(userText.value)||'(没有匹配)'; } </script></body></html>4、转义字符
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>简单的转义字符</title></head><body> <script> // 普通字符 /js/ //转义字符 \ // var str = '//我是注释'; // var pattern = /\/\//; // console.log(pattern.exec(str)); // var str = '\\\\'; // var pattern = /\\/; // console.log(str); // console.log(pattern.exec(str)) // var str = 'nba'; // var pattern = /\n/; // 匹配换行符 // var str = '1.html\n2.css\n3.js'; // var pattern = /\n/; // console.log(str) // console.log(pattern.exec(str)); // 匹配制表符TAB键 // var str = ' js'; // var pattern = /\t/; // console.log(pattern.exec(str)); // 反斜杠n // var str = 'a\nb'; // var pattern = /\x61\xOA\x62/; // console.log(pattern.exec(str)); // unicode编码 var str = ' js'; var pattern = /\u0009/; console.log(pattern.exec(str)); var str = 'Alex帅'; var pattern = /刷/; console.log(pattern.exec(str)); </script></body></html>5、字符类
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title></head><body> <script> // var str = 'javascript'; // var pattern = /[js]/; //[]匹配任意一个字符 // console.log(pattern.exec(str)); // var str = 'javascript'; // var pattern = /[a-z]/; //[]匹配任意一个字符 // console.log(pattern.exec(str)); // var str = 'javascript'; // var pattern = /[c-d]/; //[]匹配任意一个字符 // console.log(pattern.exec(str)); // 汉字匹配 // var str = 'Alex帅'; // var pattern = /[\u4e00-\u9fa5]/; // console.log(pattern.exec(str)); // 数字匹配 // var str = '00544'; // var pattern = /[a-zA-Z0-9]/; // console.log(pattern.exec(str)); </script></body></html>、