传统字符串的方法
1.indexOf ——查找对应字符的位置
2.SubString——用来截取字符串
3.charAt——在字符串中根据下标去找对应的字符
4.Split ——将字符串通过分割符转成数组
传统的小案例
var str = 'abc123def45ghijk67lmnxyd89'; // 得到所有的数字 并将相连的数字进行相连存储 如 ["123","45","67","89"]
var arr = [];
// 建立一个临时变量 用来拼接连续的数字字符串
var temp = "";
for(var i = 0; i < str.length; i++) {
if(str.charAt(i)>="0"&&str.charAt(i)<=9) {
// 进来之后肯定是数字
temp += str[i];
} else {
if (temp) {
arr.push(temp);
// 清空这个临时变量 以便于下一次重新装载 连续的数字
temp = "";
}
}
}
// 防止 最后一些字符 是数字 不进else 就拼不进去了 所以这个在最后要判断如果temp里面还有 则在推进去一次
if (temp) {
arr.push(temp);
temp = "";
}
console.log(arr);
上面的方法是传统的查找字符串的方法,我们会感觉的很麻烦,下面我们用正则表达式试试:
var str = 'abc123def45ghijk67lmnxyd89';
console.log(str.match(/\d+/g));
用正则表达式以后会觉得这样是简单了很多,提高我们的开发效率。
下面我们来介绍一下什么是正则表达式
定义:正则:也叫规则,是让计算机能够读懂人类的规则,正则都是操作字符串的,正则是一个强大的字符串匹配工具。
c) 正则:正则表达式Regular Expression var str var arr var re regexp
- 正则一个js中全局内置对象 (var mydate = new Date()) php (正则)
- 正则是一个工具
- 简单声明方式: var re = /abc/;
- 构造函数声明方式 var re = new RegExp(‘abc’);
下面是一些正则表达式的常用匹配方法
一、Test():用正则去匹配的方法
1.返回值: 如果匹配成功 则返回true 否则匹配不成功 返回fals
2.写法: re.test(str); 用re去匹配str
正则当中的转义字符:
- .(点)——任意字符 如果就想只匹配.(点) 加转义字符 还原它本来的意思.
- d、D 匹配数字 / 非数字
- w、W 匹配字符/非字符 (字符:字母数字下划线 不包含空格)
- s 、S 空格/ 非空格
- b 、B 匹配独立部分/ 非独立部分
二、Search() 用正则进行匹配的方法
1.返回值: 如果匹配成功 则返回对应匹配的位置 否则匹配不成功返回-1
2.写法:str.search(re)
注意:正则中严格区分大小写 如果你想忽略大小写,忽略大小写(ignore简写)
三、Match()
1.返回值:如果匹配成功 则返回一个数组,会把匹配到字符保存到数组中
2.写法:str.match(re)
注意: 正则匹配:如果匹配成功 则不往后匹配了,g 全局匹配模式
var str = 'abbbcdeBdbBzzsB'; // ["bbb","B","bB","B"]
var re = /B+/ig; // new RegExp(‘B+’,’ig’);
console.log(str.match(re));
上面的i和g都是放置在第二斜杠后面
四、 Replace()
返回值:用正则去匹配字符串 ,将匹配到的字符进行替换 替换成新的字符
写法一: str.replace(re,新字符);
写法二: str.replace(re,function($0){
Console.log($0)
})
小案例:
将字符串("我的生活,我的爱人,我的世界")中的"我的"替换成"my"
var str="我的生活,我的爱人,我的世界";
document.write(str.replace(/"我的"/,"my"))//只替换了第一个后面的都没有被替换
document.write(str.replace(/"我的"/g,"my"))//全部的我的都替换成了my
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。