JavaScript-正则表达式

    科技2022-09-07  130

    修饰符

    i :对大小写不敏感匹配 g:执行全局匹配(找到所有匹配) m:执行多行匹配

    方括号

    [abc]查找括号内的任何字符 [^abc] 查找任何不在括号内的字符 [0-9]查找从0至9的任何字符 [a-z] [A-z] [A-Z] (red|blue|green)查找任何指定的选项

    RegExp 对象方法

    exec 检索字符串中指定的值。如果找到值,则返回该匹配值,否则返回null test 检索字符串中指定的值。匹配则返回true 否则false

    支持正则表达式的 String 对象的方法

    search 检索与正则表达式相匹配的值,返回匹配值的位置索引 match 找到一个或多个正则表达式的匹配,返回匹配值 replace 替换正则表达式匹配的字符串 split 把字符串分割为字符串数组

    正则表达式匹配与搜索

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JavaScript中的正则表达式</title> </head> <body> <h1>JavaScript中的正则表达式</h1> </body> <script> //正则的使用 var str = "wert45678yuiytrew"; //使用正则匹配子串str中的数字 console.log(str.match(/[0-9]+/)); //使用RegExp创建一个正则对象 var pat = new RegExp("[0-9]+"); console.log(str.match(pat)); console.log(pat.exec(str)); //以上三个返回结果一致:["45678", index: 4, input: "wert45678yuiytrew", groups: undefined] console.log("=============================="); //正则搜索 console.log(str.search(/[0-9]+/)); //4 返回首次匹配位置 ,没有返回-1 console.log(str.search(pat)); //4 返回首次匹配位置 ,没有返回-1 console.log(pat.test(str)); //true 返回是否匹配 //匹配多个 console.log("=============================="); var str = "wert45678yui456ytr678ew"; console.log(str.match(/[0-9]+/)); //默认只匹配一次 console.log(str.match(/[0-9]+/g)); //(3) ["45678", "456", "678"] 使用g修饰符 匹配所有 </script> </html>

    正则表达式语法格式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JavaScript中的正则表达式</title> </head> <body> <h1>JavaScript中的正则表达式</h1> </body> <script> //正则的使用 var str = "wer245ty4d56fg78hj987k"; //使用正则匹配子串str中的数字 //console.log(str.match(/[0-9]/g)); //匹配任意一位数字 //console.log(str.match(/[0-9][0-9]/g)); //匹配任意两位数字 //console.log(str.match(/[0-9]{2}/g)); //匹配任意两位数字 //console.log(str.match(/[0-9][0-9][0-9]/g)); //匹配任意三位数字 //console.log(str.match(/[0-9]{3}/g)); //匹配任意三位数字 //console.log(str.match(/[0-9]{2,3}/g)); //匹配任意两位或三位数字 //console.log(str.match(/\d{2,3}/g)); //匹配任意两位或三位数字 console.log(str.match(/\d+/g)); //匹配至少一位数字 console.log(str.match(/\d{1,}/g)); //匹配至少一位数字 console.log(str.match(/[0-9]{1,}/g)); //匹配至少一位数字 //\d{1,} [0-9]{1,} \d+ [0-9]+ 都表示至少一位的数字 //精确匹配 var pat = new RegExp("[0-9]+"); console.log(pat.test("er2567thj")); //true 匹配子串中是否含有数字 var pat = new RegExp("^[0-9]+"); console.log(pat.test("er2567thj")); //false 匹配子串中是否是以数字开头 console.log(pat.test("2567thj")); //true 匹配子串中是否是以数字开头 var pat = new RegExp("[0-9]+$"); console.log(pat.test("er2567thj")); //false 匹配子串中是否是以数字结尾 console.log(pat.test("wer2567")); //true 匹配子串中是否是以数字结尾 var pat = new RegExp("^[0-9]+$"); console.log(pat.test("2567thj")); //false 匹配子串中是否是纯数字 console.log(pat.test("wer2567")); //false 匹配子串中是否是纯数字 console.log(pat.test("2567")); //true 匹配子串中是否是纯数字 var pat2 = new RegExp("^[0-9]{6}$"); //精确匹配任意6位数字 </script> </html>

    JS正则表达式替换与分割

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JavaScript中的正则表达式</title> </head> <body> <h1>JavaScript中的正则表达式分割和替换</h1> </body> <script> var str = "23:45:67:89:87:63"; console.log(str.split(":")); //(6) ["23", "45", "67", "89", "87", "63"] 使用子串拆分 str = "23:45;67:89!87#63"; console.log(str.split(/[^0-9]/)); //(6) ["23", "45", "67", "89", "87", "63"] 使用正则拆分 str = "23:45;67:89!87#63"; //将上面子串中的分隔符统一替换成逗号, console.log(str.replace(/[^0-9]/g,",")); //23,45,67,89,87,63 str = "<b>aaa</b><b>bb>b</b><b>ccc</b>"; //将上面子串中的<b></b>标签替换成<i></i> 下面其中$1表示重复正则中第一个小括号中内容 console.log(str.replace(/<b>(.*?)<\/b>/g,"<i>$1</i>")); //.*是贪婪匹配(最大) .*?是拒绝贪婪匹配(最小) console.log("========================================="); str = "04/28/2020"; //西方日期格式,请使用正则替换成中国的[年-月-日]格式 console.log(str.replace(/(\d{2})\/(\d{2})\/(\d{4})/,"$3-$1-$2")); //其中$1,$2 $3表示重复正则中第一、第二、第三个小括号中内容 </script> </html>

    十进制ASCII码表

    Processed: 0.010, SQL: 10