level-21

\d,\w,\s,[a-zA-Z0-9],\b,.,,+,?,x{3},^$分别是什么?*

\d 代表匹配[0-9]的数字
\w 代表匹配[a-zA-Z0-9_]
\s 代表匹配\t\n\r在内的一些空字符
[a-zA-Z0-9] 匹配数字0-9、A-Z(不区分大小写)
\b 边界
. 匹配任意一个字符
*重复出现0次或多次类似{0,}
+ 至少出现一次 类似{1,}
?  至多出现一次 类似{0,1}
x{3},匹配连续出现3次x 的字符
^$  匹配除了$以外的字符

贪婪模式和非贪婪模式指什么?
贪婪模式是:正则表达式,趋向于匹配到符合匹配结果长度最长的字符。
一般默认是贪婪模式
非贪婪模式是:正则表达式,趋向匹配到这个结果就好,尽可能少的匹配字符。
设置非贪婪模式后面加?
例如:

    var regexp=/123.*/g
var regexp1=/123.*?/g
var arr="123 1234 12345 123333";
console.log(arr.match(regexp));//["123 1234 12345 123333"]
console.log(arr.match(regexp1));//["123", "123", "123", "123"]

代码题

写一个函数trim(str),去除字符串两边的空白字符

function trim(str){
    //去除左边的字符串
    var left=new RegExp("^\\s*","g");
    // var left=/^\s*/g;
    var right =new RegExp("\\s*$","g");
    //去除右边的字符串
    // var  right=/\s*$/g;
    var arr=str.replace(left,"");
    console.log("去除后:"+arr.replace(right,""));
    return str;
}
console.log("未开始前"+"   123456s f a f hkjh   ");
var str="   123456s f a f hkjh   ";
trim(str);

使用实现 addClass(el, cls)、hasClass(el, cls)、removeClass(el,cls),使用正则

    //使用实现 addClass(el, cls)、hasClass(el, cls)、removeClass(el,cls),使用正则
    //提示: el为dom元素,cls为操作的class, el.className获取el元素的class
    //1、addClass:为指定的dom元素添加样式。
    //2、removeClass:删除指定dom元素的样式。
    //3、toggleClass:如果存在(不存在),就删除(添加)一个样式。
    //4、hasClass:判断样式是否存在。
    function hasClass(el,cls){
        var ele=new RegExp("\\b"+cls+"\\b");
        if (ele.test(el)){
            return "存在样式cls";
        }else{
            return "不存在样式cls";
        }
    }
    function toggleClass(el,cls){
        var ele=new RegExp("\\b"+cls+"\\b");
        if (hasClass(el,cls)){
            (el.className+"").replace(cls,"");
        }else{
            el.className+=""+cls
        }
    }
    function removeClass(el.cls){
        var ele=new RegExp("\\b"+cls+"\\b");
        if(hasClass(el,cls)){
            (el.className+"").replace(cls,"");
        }
    }

写一个函数isEmail(str),判断用户输入的是不是邮箱

    function isEmail(str){
        // var rag=new RegExp("^\w{6,18}@\w{2,4}\\.[cn]\w{1,2}$");
        // var rag=/^\w{6,18}@\w{2,4}\.(c|n).+$/g;
        var rag=new RegExp("^\\w{6,18}@\\w{2,4}\\.[cn].+$")
        if(rag.test(str)==true){
            console.log("您注册的邮箱符合规范");
        }else{
            console.log("邮件地址需由字母、数字或下划线组成,请重新注册")
        }
    }
    var a="[email protected]";
    var b="[email protected]";
    isEmail(a);
    isEmail(b);

写一个函数isPhoneNum(str),判断用户输入的是不是手机号

    function isphoneNum(str){
        var reg=/^1[34578]\d{9}$/;
        if(reg.test(str)){
            console.log("输入的号码为手机号");
        }else{
            console.log("请输入正确的手机号");
        }
    }
    str="123456678";
    str1="13972023324";
    str2="152311111111";
    isphoneNum(str);//请输入正确的手机号
    isphoneNum(str1);//输入的号码为手机号
    isphoneNum(str2);//请输入正确的手机号

写一个函数isValidUsername(str),判断用户输入的是不是合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)

    function isValidUsername(str){
        var reg=/^[\w]{6,20}$/
        if (reg.test(str)){
            console.log("符合标准");
        }else{
            console.log("不符合标准");
        }
    }
    str="1231231231231313123123123"
    isValidUsername(str);

判断用户输入的是不是合法密码(长度6-20个字符,包括大写字母、小写字母、数字、下划线至少两种) -->


                    
                    

你可能感兴趣的:(level-21)