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
的 match
、replace
、search
和 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="邮政编码格式不正确!";
}