indexof函数分析及其计数字符串函数、正则表达式的例⼦及分析
⼀、indexof函数分析:
indexof⽅法:
语法:
stringObject.indexOf(searchvalue,fromindex)
searchvalue必需。规定需检索的字符串值。
fromindex可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的⾸字符开始检索。
该⽅法将从头到尾地检索字符串 stringObject,看它是否含有⼦串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果到⼀个 searchvalue,则返回 searchvalue 的第⼀次出现的位置。stringObject 中的字符位置是从 0 开始的。
注:
1.indexOf() ⽅法对⼤⼩写敏感!
2.如果要检索的字符串值没有出现,则该⽅法返回 -1。
利⽤indexof函数检索字符串,未到指定字符串值返回-1作为循环判断的条件。
如下是在⼀段字符串中到指定字符串出现次数的函数:
var mainStr="star,star,study,study,star,hello";
var subStr="star";
function countStar(mainStr, subStr)
{
var count = 0;
var find = 0;
do
{
find = mainStr.indexOf(subStr, find);
if(find != -1)
{
count++;
find += subStr.length;  //此处为该函数的关键点,当到了第⼀个指定字符串后,下⼀次开始检索的位置为上⼀次的指定字符串⾸字母位置加上该字符串的长度,这样才能不重复检索前⾯的字符串。
}
}while(find != -1)
return count;
}
document.write(countStar(mainStr, subStr));
⼆、正则表达式分析:
何为正则表达式?
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使⽤单个字符串来描述、匹配⼀系列符合某个句法规则的字符串搜索模式。
搜索模式可⽤于⽂本搜索和⽂本替换。
对于我来说,通俗地讲正则表达式就是字符串的检索将复杂长串的代码简化为⼀串略微抽象的简短的代码,再配上相应的正则表达式⽅法即可发挥其⾼效的作⽤。
例:
var str=/rgb/g;
这⾥的/rgb/即为正则表达式主体(⽤于检索),⽽后⾯的g为修饰符,⽽⼀般正则表达式由这两部分构成。
⽽有些时候使⽤正则表达式⽅法,不⽤定义变量,可以直接使⽤正则表达式进⾏⽅法操作。
注意(三种修饰符的作⽤):
i执⾏对⼤⼩写不敏感的匹配。
g执⾏全局匹配(查所有匹配⽽⾮在到第⼀个匹配后停⽌)。
m执⾏多⾏匹配。
我们需要了解正则表达式模式包括其表达式范围、量词、特殊意义的字符。
如下举例常⽤的正则表达式表单验证对应字符串:
正则匹配第二个符合的name:
/*校验是否中⽂名称组成 */
function ischina(str) {
var reg=/^[\u4E00-\u9FA5]{2,4}$/;  /*定义验证表达式*/
st(str);    /*进⾏验证*/
}
phone:
/*校验电话码格式 */
function isTelCode(str) {
var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
st(str);
}
/*校验邮件地址是否合法 */
function IsEmail(str) {
var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
st(str);
}
所需要注意的是这也是js开始⽤于表单验证表现出来的好处,可直接在⽹页进⾏验证,不必与后台数据进⾏交互后验证,也提⾼了效率。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。