第8周作业

1.indexOf

用indexof查找一串字符中某个字符出现的次数:

<!DOCTYPE html>
<html>
 <head>
     <meta charset="utf-8">
        <title>Indexof</title>    
    </head>
    <body>
     <button onclick="myFunction()">点我可查看这一串"start stop start stop start stop start start start start start stop"字符中"start"字符出现的次数</button>    
        <p id="demo"></p>
        <script type="text/javascript">
         function myFunction(){
             var str = "start stop start stop start stop start start start start start stop";
                var count=0;
                var index=0;
                var key="start";
                while((index = str.indexOf(key,index))!= -1){
                 index += key.length;
                    count = count+1;
                }
                document.getElementById("demo").innerHTML = count;
            }
        </script>    
    </body>
</html>

1. 正则表达式规则(regular expression rules)

正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 matchreplacesearch 和 split 方法。本章介绍 JavaScript正则表达式。

正则表达式是形成搜索模式的字符序列。

在文本中搜索数据时,可以使用此搜索模式来描述要搜索的内容。

正则表达式可以是单个字符,也可以是更复杂的模式。

正则表达式可用于执行所有类型的文本搜索和文本替换操作。

  正则表达式的语义成分包括:

1,转义字符,如\\反斜杠、\r\n\t\f回车换行等、\0nnn八进制数、\xff十六进制数、\uhhhhUnicode字符;

2,字符集,如[abc]、[^abc]非abc、[a-zA-Z0-9]大小写英文字母及数字、[a-z&&[^g-k]]除g到k之外的小写字母,\d\s\w数字空白字母,\D\S\W非数字非空白非字母(这里的反斜杠需要转义为\\才能编译),有些POSIX字符集可能有用,\p{ASCII}、\p{Punct}标点、\p{Cntrl}控制符、\p{XDigit}十六进制字符,特殊集合,[\u4e00-\u9fa5]中文字符、^[1-9]\d{5}$邮政编码等;

3,逻辑词及边界匹配,如XY顺序、X|Y或、(X)分组、(?:X)分组但不占用分组编号、\n之前匹配的分组(如(ab)c+\1表示首尾都是ab,中间全是c的串模式)、$i已匹配的分组对应值(如查找(ab)(c+)(de)替换为$3$2$1表示前后调换ab和de),^起始(^(ab)以ab开头的句子)、$结束($(ab)以ab结尾的句子)、\b单词匹配。

4,贪婪及匹配次数,*0次以上、?0或1次、+1次以上、{n}n次、{n,}n次以上、{n,m}n至m次,?勉强匹配(如abc*?匹配abccd时只得ab),+贪婪匹配(如abc*+匹配abccd则得abcc)。

匹配 name phone email的正则表达式

关于name 

    var str = "my name is pauk";

    var n = str.search(/pauk/i);

关于phone 的验证(以13开头18开头和158,159开头,共11位)

var re;
var ss=document.getElementById('textbox3').val;
re= /^(13[0-9]{9})| (18[0-9]{9}) |(15[89][0-9]{8})$/

if(re.test(ss))

{
document.getElementById('label3').innerText="";   //给label赋值用innerText
}
else
{
document.getElementById('label3').innerText="请输入正确的手机号码!";
document.getElementById('imagebutton1').disabled=tr; //禁用Button用disabled
}

关于Email

邮件地址的验证(包含@和.)

var re;
var ss=document.getElementById(textboxid).val;
re= /\w@\w*\.\w/
if(re.test(ss))
document.getElementById('label4').innerText="";
else
{
document.getElementById('label4').innerText="请输入正确的邮件地址!";
document.getElementById('imagebutton1').disabled=tr;
}

关于 邮政编码的验证(开头不能为0,共6位)

var ss=document.getElementById('TextBox4').val;
var re= /^[1-9][0-9]{5}$/
if(re.test(ss))
document.getElementById('label5').innerText="";
else
{

  document.getElementById('label5').innerText="邮政编码格式不正确!";

}

猜你喜欢

转载自www.cnblogs.com/puyi174843/p/9904963.html