js 正则表达式(匹配,提取)

正则匹配

var regex = new RegExp("正则表达式字符串", "可选参数");
boolean regex.test(要匹配的字符串);

JavaScript表单验证

1、在JavaScript中定义正则表达式对象的格式:

var regex1=/^[\u4e00-\u9fa5]{2,8}$/;

也就是在两个斜杠之间书写正则表达式即可。

2、书写出来的正则表达式变量自带一个方法.regex1.test(参数),这个方法就是判断传入的参数满不满足正则表达式。满足则返回true,否则返回false。

3、对于form表单,有一个onsubmit事件,捕获提交事件,对于这个事件:

document.getElementById("frmInfo").onsubmit=function(){
    //如果在这个函数体内return false,则表单内容不会被提交。直接中止。
    //return true,则会正常提交。
}

js正则匹配+替换提取文本

var html =
    "<ul>\n"
    + "    <l1>北京Beijing</l1>\n"
    + "    <l1>上海Shanghai</l1>\n"
    + "    <l1>新疆维吾尔自治区Xinjiang</l1>\n"
    + "</ul>";

var regex  = /([\u4e00-\u9fa5]{2,})([a-zA-Z]*)/g

let array = html.match(regex)
    .map(m => m.replace(regex,"$1-$2"))
    .join("\n")

console.log(array);
北京-Beijing
上海-Shanghai
新疆维吾尔自治区-Xinjiang

正则替换

在js中替换是string的方法,string;在字面值右边的斜线后加上可选参数g就表示全局模式

var date = "2018年12月09日";
var res = date.replace(/(\d+)年(\d+)月(\d+)日/, "$1-$2-$3");

console.log(res);//2018-12-09

关于替换方法,如果第一个参数不是正则表达式对象,而是一个字符串,就执行字符串的简单替换

replace替换默认是替换第一个匹配到的字符, 如果需要匹配所有, 需要使用全局模式(g),