判断字符串中是否存在某个字符的几种方法


1.indexOf()

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

如果没有找到匹配的字符串则返回 -1。

注意: indexOf() 方法区分大小写。

语法

string.indexOf(searchvalue,start)

参数值

参数 描述
searchvalue 必需。规定需检索的字符串值。
start 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。

返回值

类型 描述
Number 查找指定字符串第一次出现的位置,如果没找到匹配的字符串则返回 -1。

实例

查找字符串 “welcome”:

var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
console.log(n)
//13 //从起始位置 (0) 开始计算,空格也算一个字符。

2.lastIndexOf()

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索。

注意: 该方法将从后向前检索字符串,但返回是从起始位置 (0) 开始计算子字符串最后出现的位置。 看它是否含有字符串。

开始检索的位置在字符串的 start 处或字符串的结尾(没有指定 start 时)。

如果没有找到匹配字符串则返回 -1 。

注意:lastIndexOf() 方法是区分大小写的!

语法

string.lastIndexOf(searchvalue,start)

参数值

参数 描述
searchvalue 必需。规定需检索的字符串值。
start 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。

返回值

类型 描述
Number 查找的字符串最后出现的位置,如果没有找到匹配字符串则返回 -1。

实例

查找字符串 “runoob” 最后出现的位置:

var str="I am from runoob,welcome to runoob site.";
var n=str.lastIndexOf("runoob");
console.log(n)
//28 //从起始位置 (0) 开始计算,空格也算一个字符。

search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。

如果没有找到任何匹配的子串,则返回 -1。

语法

string.search(searchvalue)

参数值

参数 描述
searchvalue 必须。查找的字符串或者正则表达式。

返回值

类型 描述
Number 与指定查找的字符串或者正则表达式相匹配的 String 对象起始位置。

实例

执行一次对大小写敏感的查找:

var str="Mr. Blue has a blue house";
console.log(str.search("blue"));
//15

4.match()

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

注意: match() 方法将检索字符串 String Object,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。

语法

string.match(regexp)

参数值

参数 描述
regexp 必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。

返回值

类型 描述
Array 存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。 如果没找到匹配结果返回 null

实例

全局查找字符串 “ain”,且不区分大小写:

var str="The rain in SPAIN stays mainly in the plain"; 
var n=str.match(/ain/gi);
console.log(n)
//['ain', 'AIN', 'ain', 'ain']

判断是否微信浏览器:

function is_weixn(){  
    var ua = navigator.userAgent.toLowerCase();  
    if(ua.match(/MicroMessenger/i)=="micromessenger") {  
        return true;  
    } else {  
        return false;  
    }  
}

5.replace()

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

该方法不会改变原始字符串。

语法

string.replace(searchvalue,newvalue)

参数值

参数 描述
searchvalue 必须。规定子字符串或要替换的模式的 RegExp 对象。 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。
newvalue 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

返回值

类型 描述
String 一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

实例

执行一个全局替换:

var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/g,"red");
console.log(n)
//'Mr Blue has a red house and a red car'

执行一个全局替换, 忽略大小写:

var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/gi, "red");
console.log(n)
//'Mr red has a red house and a red car'

判断该字段是否存在:

var a="Microsofts";//要判断的字符
var str="Visit Microsoft! Visit Microsoft!";
var n=str.replace(a,"Runoob");
console.log(n==str)//为true表示不存在,false,表示n替换成功了str里的字符,表示存在

文章作者: 弈心
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 弈心 !
评论
  目录