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),