我对前端的学习没啥信息了!但是,贵在坚持!
预习(特效:Web APIs,DOM,BOM)
1.正则表达式:用户名;密码;手机号;邮箱;日期。
2.内置对象:(参数(模式,flag))–>参数包括模式和flag标记;修饰符:i
执行对大小心不敏感(忽略大小写)的匹配;g
执行全局匹配;m
执行多行匹配。
3.构造函数:
var reg = new RegExp('ab[a-z]','i');
var str = "AB";
reg.test(str);
在 JavaScript 中,RegExp 对象是带有预定义属性和方法的正则表达式对象。
test() 是一个正则表达式方法。它通过模式来搜索字符串,然后根据结果返回 true 或 false。
var reg = /ab[a-z]/i;
reg.test(str);
var dataStr = '2020-01-01';
var reg = /^\d{4}-\d{1,2}-\d{1,2}$/;
reg.test(dataStr);
/e/.exec("The best things in life are free!");
exec() 方法是一个正则表达式方法。它通过指定的模式(pattern)搜索字符串,并返回已找到的文本。如果未找到匹配,则返回 null。
补充:(视频课里提到了)String对象,match()提取,replace()替换,split()切割,search()搜索。
search() 方法使用表达式来搜索匹配,然后返回匹配的位置。
replace() 方法返回模式被替换处修改后的字符串。
参考手册:https://www.w3school.com.cn/jsref/jsref_obj_regexp.asp
4.相关案例
var qqStr = 'xxx';
var reg = /\d+/g;
//提取第一个
var content = reg.exec(qqStr);
//接着复制,顺次往下提取
do{
var content = reg.exec(qqStr);
if(content){
console.log(content[0]);
}while(content)
//匹配
var qqStr = qqStr.math(reg);
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
分组提取:正则表达式中()作为分组来使用,获取分组匹配到的结果用Regex.$1 $2 $3…来获取。
菜鸟教程:https://www.runoob.com/regexp/regexp-tutorial.html
var dataStr = '2022-01-01';
var dataReg = /^(\d{4})-(\d{1,2})-(\d{1,2})$/;
if(dataReg.test(dataStr)){
console.log(RegExp.$1);
}
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
stringObject.replace(regexp/substr,replacement)
:replacement规定了替换文本或生成替换文本的函数。
var dataStr = 'nnnn mmmm';
str = str.replace(/\s/g,'*');
split() 方法用于把一个字符串分割成字符串数组。
stringObject.split(separator,howmany)
:howmany: 可选,该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
var dataStr = '2020-01-17';
dataStr.split('-');
补充:贪婪就是尽可能多的匹配;非贪婪就是尽可能少的匹配;将?
紧跟在任何量词* +
或{}
后面,使量词变为非贪婪。/\s*/ /\s*$/
视频课里面还有一些多余的代码,所以为了以防万一都发一下吧!
表单验证:
//这个是切换标签的!
window.onload = function () {
/*获取需要的标签*/
var as = document.getElementsByClassName('content-header')[0].getElementsByTagName('a');
var contents = document.getElementsByClassName('dom');
for(var i=0;i<as.length;i++){
/*取出单个对象*/
var a = as[i];
a.id = i;
a.onclick = function () {
for(var j=0;j<as.length;j++) {
as[j].className = '';
contents[j].style.display = 'none';
}
this.className = "current";
contents[this.id].style.display = 'block';
}
}
}
验证手机号:
var phone = document.getElementById('phone');
phone.onblur = function(ev){
var reg = /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/;
if(!reg.test(this.value)){
this.style.borderColor = "#ff0000";
}else{
this.style.(略)
}
}