1.JavaScript查找字符方法
首先看一张 有关字符串函数的查找字符的方法图 接下里补充里面的方法说明
2.charAt()
charAt() 方法返回字符串中指定位置的字符
语法
str.charAt(index) index: 0 到字符串长度 -1 的一个整数。
字符串中的字符从左向右索引,第一个字符的索引值为 0,最后一个字符(假设该字符位于字符串 stringName 中)的索引值为 stringName.length - 1
。 如果指定的 index 值超出了该范围,则返回一个空字符串。
3. charCodeAt()
charCodeAt()
方法返回0到65535之间的整数,代表索引处字符的 UTF-16编码单元(在Unicode编码单元表示一个单一的UTF-16编码单元的情况下,UTF-16编码单元匹配Unicode编码单元。否则, 比如Unicode 编码单元 > 0x10000 的情况下,只能匹配Unicode代理对的第一个编码单元)。如果你希望得到整点编码值,使用codePointAt()
语法
str.charCodeAt(index) index: 一个大于等于0 小于字符串长度的整数。如果不是一个数值 就默认为0;
如果指定的index 小于0 或者大于字符串的长度 charCodeAt()返回NaN。
4. 查找位置的方法
A): indexOf() 方法返回指定值在字符串对象中首次出现的位置。从fromIndex位置开始查找 如果不存在 则返回-1。
str.indexOf(searchValue[,fromIndex]);
searchValue 一个字符串表示被查找的值。
formIndex 可选 表示调用该方法的字符串中开始查找的位置 可以是任意整数 默认值是0。如果fromIndex < 0 则查找整个字符串(如同传进了0)
如果 formIndex >= str.length 则该方法返回-1 。除非被查找的字符串是一个空字符串 此时返回str.length。
indexOf区分大小写
'hello world'.indexOf('Hel'); //-1 返回-1
可以用来检测是否存在某字符串 (当检测某个字符串是否存在于另一个字符串中 可使用下面的方法)。
'hello world'.indexOf('hello') !== -1; //true
'hello world'.indexOf('helol') !== -1; //false
使用indexOf 统计一个字符串中某个字母出现的次数。
这是我自己封装的一个检测函数
4.lastIndexOf
lastIndexOf() 方法返回指定值在调用该方法的字符串中最后出现的位置 如果没有找到则返回-1; 从该字符串的后面向前查找 从formIndex处开始
lastIndexOf(serachValue [,formIndex])
searchValue
- 一个字符串,表示被查找的值。
fromIndex
- 从调用该方法字符串的此位置处开始查找。可以是任意整数。默认值为
str.length
。如果为负值,则被看作 0。如果fromIndex > str.length
,则fromIndex
被看作str.length
。 - 同样的 可以使用lastIndexOf() 也可用来计算字符在字符串中出现的次数
5. 匹配方法 String.prototype.match()
当字符串匹配到正则表达式(regular experssion) match()方法会提取
6. replace()
replace() 方法使用一个替换值()替换掉一个匹配模式 在原字符串中某些或所有的匹配项 并返回替换后的新字符串 这个替换模式可以是一个字符串或一个RegExp
语法
str.replace(regexp|substr,newSubStr|function)
参数
-
regexp
(pattern) - 一个
RegExp
对象。该正则所匹配的内容会被第二个参数的返回值替换掉。
-
substr
(pattern) - 一个要被
newSubStr
替换的字符串。
-
function
(replacement) - 一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。参考下面的指定一个函数作为参数。
返回值
一部分或全部匹配由替代模式所取代的新的字符串
7.split()
Split() 通过把字符串分割成子字符串来把一个String 对象分割成一个字符串数组
str.split([separator][,limit])
参数:
separator
指定用来分割字符串的字符 separator 可以是一个字符串或这则表达式 如果忽略separator 则返回这个字符串的数组形式 如果 separator
是一个空字符串,则 str
将会把原字符串中每个字符的数组形式返回。
limit
- 一个整数,限定返回的分割片段数量。
split
方法仍然分割每一个匹配的separator
,但是返回的数组只会截取最多limit
个元素。
split
方法返回一个数组。
当找到一个 seperator
时,separator
会从字符串中被移除,返回存进一个数组当中的子字符串。如果忽略 separator
参数,则返回的数组包含一个元素,该元素是原字符串。如果 separator
是一个空字符串,则 str
将被转换为由字符串中字符组成的一个数组。
如果 separator
是一个正则表达式,且包含捕获括号(capturing parentheses),则每次匹配到 separator
时,捕获括号匹配的结果将会插入到返回的数组中。然而,不是所有浏览器都支持该特性。
Note: 当字符串为空时 split返回一个包含一个空字符串的数组 而不是一个空数组