统计字符个数:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8 </head> 9 <body> 10 <script> 11 var count = 0; 12 var stopposition = 0 13 var item = "stop" 14 var str = "start,stop,speed,start,stop,speed,start,stop,speed,start,stop,speed," 15 while( stopposition < str.length ){ 16 if( str.indexOf( item , stopposition) > 0 ){ 17 count ++ 18 stopposition = str.indexOf( item , stopposition) 19 stopposition += item.length ; 20 }else{ 21 stopposition += str.length 22 } 23 } 24 console.log(str) 25 console.log( '个数为', count ); 26 </script> 27 </body> 28 </html>
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串、将匹配的子串做替换或者从某个字符串中取出符合某个条件的子串等。
简而言之,正则表达式就是处理字符串的,我们可以用它来处理一些复杂的字符串。
正则表达式的创建方式
- 字面量创建方式
- 实例创建方式
var reg = /pattern/flags
// 字面量创建方式
var reg = new RegExp(pattern,flags);
//实例创建方式
pattern:正则表达式
flags:标识(修饰符)
标识主要包括:
1. i 忽略大小写匹配
2. m 多行匹配,即在到达一行文本末尾时还会继续寻常下一行中是否与正则匹配的项
3. g 全局匹配 模式应用于所有字符串,而非在找到第一个匹配项时停止
元字符
代表特殊含义的元字符
d : 0-9之间的任意一个数字 d只占一个位置
w : 数字,字母 ,下划线 0-9 a-z A-Z _
s : 空格或者空白等
D : 除了d
W : 除了w
S : 除了s
. : 除了
之外的任意一个字符
: 转义字符
| : 或者
() : 分组
n : 匹配换行符
b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数
^ : 限定开始位置 => 本身不占位置
$ : 限定结束位置 => 本身不占位置
[a-z] : 任意字母 []中的表示任意一个都可以
[^a-z] : 非字母 []中^代表除了
[abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符