JS基础-(补充)11

我对前端的学习没啥信息了!但是,贵在坚持!

预习(特效: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.()
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值