23、正则表达式
作用:定义一个特定的验证字符串内容规则的表达式
注:正则表达式并不是JavaScript独有的;JavaScript支持正则表达式
var a = { }; // 定义一个空对象 var b = [ ];// 定义一个空数组
var d = / /; // 定义一个空正则表达式 var c = ( ); 【错误】
i 定义正则表达式
定义一个空的正则表达式时 ---编辑器会报错; 空的正则表达式的值 ---undefined
- 字面量方式
var 正则表达式 = /表达式规则/修饰符
- 构造函数方式
var 正则表达式 = new RegExp(表达式规则,修饰符)
i 正则表达式对象的验证方法
先定义用于验证的字符串;再定义正则表达式的规则;后验证字符串是否符合正则表达式的规则
eg: /表达式规则/.test (所有内容的字符串)
结果:完全相同返回 true [注:必要是匹配和位置无关]
² 直接字符
[ ] 表示字符集合。只要其中任意一个匹配,则返回true 数字: [0-9] 字母: [a-zA-Z]
^ 表示反向集合 \d : [0-9] -> 匹配单个数字
? 表示匹配前面一个字符0次或者1次,和{0,1}有相同的效果。
+ 表示匹配前面一个字符1次或者多次,和{1,}有相同的效果。
* 表示匹配前一个字符0次或者是多次。
² 重复规则 –
{n,m} - 匹配前面的字符最少出现n次,最多出现m次;即n <= 次数 <= m
{n} - 匹配前面的字符出现 n 次
² 位置规则
^:表示字符的开始位置; $:表示字符的结束位置
eg: / [ ]{n,m} / ----【连续】出现【n到m次】
/ [数字和字母]{n,m} / ----只要字母和数字有其一即可
/ ^[数字和字母]{n,m} / ----以数字或字母【开头】,且连续出现n到m次
/ {n,m}$ / ---以数字或字母【结尾】,且连续出现n到m次
/ ^[ ]{n,m}$ / ----以数字或字母【结尾】【总共】个数是n到m
8 直接量字符
\t : 水平制表符 TAB键 \n 或 \r : 换行符或回车符 ENTER键
8 修饰符
i - 表示不区分大小写; g - 全局搜索; m - 多行搜索;
eg: var 名称 = /正则表达式/ i; var 名称 = new RegExp('[a-z]{3,5}', 'i' );
u 字符串使用正则表达式的方法
² 替换方法
replace(/被替换的内容/,被替换的内容 ) 被替换的内容---使用正则表达式
² 匹配内容—>数组
match(/需匹配的内容/)
返回值:是一个数组; 需匹配的内容---使用正则表达式
(注:若参数为字符串时,返回的数组只有一个元素)
² 查找内容—>位置
search(需查找的内容)
返回值:匹配内容的索引值 (注:如果没有任何内容匹配的话,返回 -1)
24、字符串
- 遍历字符串
方法:(类似数组) 使用for 或 for… in 结果:得到字符串中的每个字符
- 查找字符
² charAt(索引值)
注: 超出索引值范围时,则返回空字符
² charCodeAt(索引值)
注:返回值:指定索引值对应的字符的Unicode编码值 [a-97; z-122; 0-48; 9-59;]
- 检索字符串
indexOf(检索的字符串)
- 截取字符串
² slice(start, end)
start:开始截取的位置(被包含); end:结束截取的位置【不被包含】
正数:从左向右排列(从 0 开始) 负数:从右向左排列(从 -1开始)
² substr(位置,个数)
若不设置个数,则默认为截取到最后
² substring(start, end)
start:开始截取的位置(被包含) end:结束截取的位置【不被包含】
- Ø 分隔字符串
split( )
作用:将一个使用分隔符分隔的字符串转换为一个数组
参数:分隔符; 返回值:数组
总:原有基础上 不做处理,则空格也有分隔符;且所有元素组成一个数组
原有什么,再给什么,从而分隔符就是什么;且所有元素组成一个数组