concat
- 将两个或多个字符的文本组合起来,返回一个新的字符串。
var c = a.concat(b)
indexOf
- 返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回-1。
var index = a.indexOf("w");
lastIndexOf
- 返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回-1。
var index = a.indexOf("w");
charAt
- 返回指定位置的字符
var get_char = a.charAt(0);
length
- 将整个字符串转换成大写字母。
var low = a.length();
toLowerCase
- 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。
var low = a.toLowerCase();
toUpperCase
- 将整个字符串转换成大写字母。
var low = a.toUpperCase();
join
- 把数组中的所有元素放入一个字符串。
var a = "hello";
var arr = a.split("");
split
- 通过将字符串划分成子串,将一个字符串做成一个字符串数组。
var arr = ["哎呦喂","你","很","拽","啊"];
var arr2 = arr.join("");
substr
- 返回字符串的一个子串,传入参数是起始位置和长度。
var sub2 = a.substr(1,2);
substring
- 返回字符串的一个子串,传入参数是起始位置和结束位置。
var sub2 = a.slice(1,4);
slice
- 提取字符串的一部分,并返回一个新字符串(用法与substring相同)。
var sub2 = a.slice(1,4);
match
- 检查一个字符串匹配一个正则表达式内容,如果没有匹配项,返回null。
var reg = new RegExp(/^\w+$/);
var alpha = a.match(reg);
search
- 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值,否则返回-1。
var re = new RegExp(/^\w+$/);
var res = a.search(re);
replace
- 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。
var res = a.replace(re,"hello");
var res2 = b.replace(re,"hello");
正则表达
1.定义正则表达式:
a.普通方式: var reg=/表达式/附加参数
b.构造函数方式: var reg=new RegExp(“表达式”,”附加参数”);
附件参数:
g:代表可以进行全局匹配。
i:代表不区分大小写匹配。
m:代表可以进行多行匹配。
ps:普通方式中的表达式必须是一个常量字符串,而构造函数中的表达式可以是常量字符串,也可以是一个js变量,例如根据用户的输入来作为表达式参数等等:var reg=new RegExp(document.forms[0].exprfiled.value,”g”);
正则表达式小知识
1--- . 匹配除换行符以外的任意字符
2--- \w 匹配字母或数字或下划线或汉字 (等价于[0-9a-zA-Z_] \w能不能匹配汉字要看你的操作系统和你的应用环境而定)
3--- \s 匹配任意的空白符
4--- \d 匹配数字
5--- \b 匹配单词的开始或结束
6--- ^ 匹配字符串的开始
7--- $ 匹配字符串的结束
8--- +表示重复一次或者多次
9--- *表示重复0或者多次
10--- {n,m}表示n到m次
描述字符范围
在正则表达式语法中,放括号表示字符范围。在方括号中可以包含多个字符,表示匹配其中任意一个字符。如果多个字符的编码顺序是连续的,可以仅指定开头和结尾字符,省略中间字符,仅使用连字符~表示。如果在方括号内添加脱字符^前缀,还可以表示范围之外的字符。例如:
[abc]:查找方括号内任意一个字符。
[^abc]:查找不在方括号内的字符。
[0-9]:查找从 0 至 9 范围内的数字,即查找数字。
[a-z]:查找从小写 a 到小写 z 范围内的字符,即查找小写字母。
[A-Z]:查找从大写 A 到大写 Z 范围内的字符,即查找大写字母。
[A-z]:查找从大写 A 到小写 z 范围内的字符,即所有大小写的字母。
选择匹配
选择匹配类似于 JavaScript 的逻辑与运算,使用竖线|描述,表示在两个子模式的匹配结果中任选一个。例如:
1) 匹配任意数字或字母
var r = /\w+|\d+/;
2) 可以定义多重选择模式。设计方法:在多个子模式之间加入选择操作符。为了避免歧义,应该为选择操作的多个子模式加上小括号。
var r = /(abc)|(efg)|(123)|(456)/;
惰性匹配
重复类量词都具有贪婪性,在条件允许的前提下,会匹配尽可能多的字符。
?、{n} 和 {n,m} 重复类具有弱贪婪性,表现为贪婪的有限性。
*、+ 和 {n,} 重复类具有强贪婪性,表现为贪婪的无限性。
越是排在左侧的重复类量词匹配优先级越高。下面示例显示当多个重复类量词同时满足条件时,会在保证右侧重复类量词最低匹配次数基础上,使最左侧的重复类量词尽可能占有所有字符。
与贪婪匹配相反,惰性匹配将遵循另一种算法:在满足条件的前提下,尽可能少的匹配字符。定义惰性匹配的方法:在重复类量词后面添加问号?限制词。贪婪匹配体现了最大化匹配原则,惰性匹配则体现最小化匹配原则。
针对 6 种重复类惰性匹配的简单描述如下:
- {n,m}?:尽量匹配 n 次,但是为了满足限定条件也可能最多重复 m 次。
- {n}?:尽量匹配 n 次。
- {n,}?:尽量匹配 n 次,但是为了满足限定条件也可能匹配任意次。
- ??:尽量匹配,但是为了满足限定条件也可能最多匹配 1 次,相当于 {0,1}?。
- +?:尽量匹配 1 次,但是为了满足限定条件也可能匹配任意次,相当于 {1,}?。
- *? :尽量不匹配,但是为了满足限定条件也可能匹配任意次,相当于 {0,}?。
var s = "<html><head><title></title></head><body></body></html>";
var r = /<.*?>/
var a = s.match(r); //返回单个元素数组["<html>"]
在上面示例中,对于正则表达式 /<.*?>/ 来说,它可以返回匹配字符串 "<>",但是为了能够确保匹配条件成立,在执行中还是匹配了带有 4 个字符的字符串“html”。惰性取值不能够以违反模式限定的条件而返回,除非没有找到符合条件的字符串,否则必须满足它。
子表达式
使用小括号可以对字符模式进行任意分组,在小括号内的字符串表示子表达式,也称为子模式。子表达式具有独立的匹配功能,保存独立的匹配结果;同时,小括号后的量词将会作用于整个子表达式。
通过分组可以在一个完整的字符模式中定义一个或多个子模式。当正则表达式成功地匹配目标字符串后,也可以从目标字符串中抽出与子模式相匹配的子内容。
var s = "ab=21, bc=45, cd=43";
var r = /(\w+)=(\d*)/g;
while (a = r.exec(s)) {
console.log(a); //返回类似["ab=21","bc=45","cd=43"]三个数组
}
此代码中,不仅能匹配出每个变量声明,同时还抽出每个变量及其值。