您的当前位置:首页正文

基于js字符串indexof与search方法的区别(图文教程)

2023-11-30 来源:博科教育
下面我为大家分享一篇基于js 字符串indexof与search方法的区别介绍,具有很好的参考价值,希望对大家有所帮助。

1.indexof方法

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

语法:

注意:有可选的参数(即设置开始的检索位置)。

2、search方法

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

注意:search方法可以根据正则表达式查找指定字符串(可以忽略大小写,并且不执行全局检索),同时没有可选参数(即设置开始的检索位置)。

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

JS跨域POST实现步骤详解

JS操作DOM树遍历方法总结

JS取得最小公倍数与最大公约数

小编还为您整理了以下内容,可能对您也有帮助:

js 查找字符串中是否包含指定的字符串

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有找到,则该方法返回 -1。

includes() 方法用于判断字符串是否包含指定的子字符串,如果找到匹配的字符串则返回 true,否则返回 false。注意: includes() 方法区分大小写。

search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果匹配到字符串则返回,字符串所在索引。

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。注意: includes() 方法不区分大小写。

test() 方法用于检测一个字符串是否匹配某个模式。如果字符串中有匹配的值返回 true ,否则返回 false。

exec() 方法用于检索字符串中的正则表达式的匹配。如果字符串中有匹配的值返回该匹配值,否则返回 null。

js 查找字符串中是否包含指定的字符串

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有找到,则该方法返回 -1。

includes() 方法用于判断字符串是否包含指定的子字符串,如果找到匹配的字符串则返回 true,否则返回 false。注意: includes() 方法区分大小写。

search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果匹配到字符串则返回,字符串所在索引。

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。注意: includes() 方法不区分大小写。

test() 方法用于检测一个字符串是否匹配某个模式。如果字符串中有匹配的值返回 true ,否则返回 false。

exec() 方法用于检索字符串中的正则表达式的匹配。如果字符串中有匹配的值返回该匹配值,否则返回 null。

JS 中的字符串方法

concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串。

indexOf() –

返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回 -1 。

charAt() – 返回指定位置的字符。

lastIndexOf() –

返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1 。

match() – 检查一个字符串是否匹配一个正则表达式。

substring() – 返回字符串的一个子串。传入参数是起始位置和结束位置。

replace() –

用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。

search() –

执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。

slice() – 提取字符串的一部分,并返回一个新字符串。

split() – 通过将字符串划分成子串,将一个字符串做成一个字符串数组。

length –

返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。

toLowerCase() – 将整个字符串转成小写字母。

toUpperCase() – 将整个字符串转成大写字母。

js判断字符串中是否出现多个关键词

通过 JavaScript 在字符串中查找某一个关键词、文件格式或者字符串,可以使用以下方法:

String对象的方法

方法一: indexOf() (推荐)

var str = "123";
console.log(str.indexOf("3") != -1 ); // true
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1 。

方法二: search()

var str = "123";
console.log(str.search("3") != -1 ); // true
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1 。

方法三:match()

var str = "123";
var reg = RegExp(/3/);
if(str.match(reg)){
// 包含
}
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

RegExp 对象方法

方法四:test()

var str = "123";
var reg = RegExp(/3/);
console.log(reg.test(str)); // true
test() 方法用于检索字符串中指定的值。返回 true 或 false。

方法五:exec()

var str = "123";
var reg = RegExp(/3/);
if(reg.exec(str)){
// 包含
}
exec() 方法用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null 。

js判断字符串中是否出现多个关键词

通过 JavaScript 在字符串中查找某一个关键词、文件格式或者字符串,可以使用以下方法:

String对象的方法

方法一: indexOf() (推荐)

var str = "123";
console.log(str.indexOf("3") != -1 ); // true
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1 。

方法二: search()

var str = "123";
console.log(str.search("3") != -1 ); // true
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1 。

方法三:match()

var str = "123";
var reg = RegExp(/3/);
if(str.match(reg)){
// 包含
}
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

RegExp 对象方法

方法四:test()

var str = "123";
var reg = RegExp(/3/);
console.log(reg.test(str)); // true
test() 方法用于检索字符串中指定的值。返回 true 或 false。

方法五:exec()

var str = "123";
var reg = RegExp(/3/);
if(reg.exec(str)){
// 包含
}
exec() 方法用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null 。

js中字符串的常见方法

首先创建一个字符串,创建字符串的方法有两种:

1.字面量:var str = "abc123efg456";

2.构造函数:var str = newString("abc123efg456");

其次,需要注意的是,javascript的字符串是不可变的,String类定义的方法都不可以改变字符串内容。若是需要通过方法改变字符串的内容,需要将返回值重新赋值给原来的字符串。如:str = str.toUpperCase();

下面,介绍比较常用的字符串的方法:

var str = "1abc123abc456abc";

功能:返回指定的字符串值在字符串中首次出现的位置。

参数:s为要检索的字符,必需;n为可选的字符参数,规定字符串检索的位置。

demo:

var index1 = str.indexOf("a");

var index2 =str.indexOf("a",8);

var index3 =str.indexOf("a",14);

console.log(index1); // 1

console.log(index2); // 13

console.log(index3); // -1  从检索的位置检索不到字符,返回-1

功能:返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

参数:s为要检索的字符,必需;n为可选的字符参数,规定字符串检索的位置。

demo:

var index1 =str.lastIndexOf("a"); 

var index2 =str.lastIndexOf("a",11);

var index3 =str.lastIndexOf("a",0);

console.log(index1); // 13

console.log(index2); // 7

console.log(index3); // -1  从检索的位置检索不到字符,返回-1

功能:返回指定位置的字符。

参数:n表示字符串中某个位置的索引,不写默认为第0个字符。

demo:

var s = str.charAt(3);

console.log(s);  // c

功能:返回指定位置的字符的Unicode编码。

参数:n表示字符串中某个位置的索引,可以没有参数,默认是索引为0的参数。

demo:

var s = str.charCodeAt(3);

console.log(s);  // 99

注:c的unicode编码为99。

注意:charAt(n)方法和charCodeAt(n)方法类似,前者返回的是字符,后者返回的是字符的unicode编码。

功能:将编码转成字符方法。

参数:十进制和十六进制,不支持unicode编码。

demo:

var s1 =String.fromCharCode("0x56fd");

var s2 = String.fromCharCode(22269);

console.log(s1);   //国

console.log(s2);  //国

注:“国”的十六进制编码是56fd,十进制是22269。

功能:根据指定位置,截取子串,从m到n,不包括n。

参数:m,n为索引。

demo:

var s = str.slice(2,7);

console.log(s); // bc123

功能:根据指定位置,截取子串,从m到n,不包括n。

参数:m,n为索引。

demo:

var s = str.substring(2,7);

console.log(s); // bc123

功能:根据指定位置,截取子串,从m位置取,共取n个。

参数:m,n为索引。

demo:

var s = str.substr(2,7);

console.log(s); // bc123ab

功能:字符串替换。

参数:oldstr为需要被替换的字符,newstr为替换的字符。

demo:

var s =str.replace("a","l");

console.log(s); // 1lbc123abc456abc

注意:每次只能替换一个符合条件的字符。

功能:分割字符,返回成为数组。

参数:"s"为分割的字符。

demo1:

var arr1 = str.split("b");

console.log(arr1);  // ["1a", "c123a","c456a", "c"]

demo2:

var arr2 = str.split(); //["1abc123abc456abc"]

console.log(arr2);

demo3:

var arr3 = str.split("");

console.log(arr3); // ["1","a", "b", "c", "1", "2","3", "a", "b", "c", "4","5", "6", "a", "b", "c"]

注意:参数不写的时候,返回原字符串组成的数组;参数为空字符的时候,将每个字符分割,返回一个数组

功能:检索字符串中指定的子字符串,返回第一个与字符串匹配的索引值。

参数:需要被检索的字符串。

demo:

var s1= str.search("abc");

var s2 = str.search("efg");

console.log(s1); // 1

console.log(s2); // -1

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

功能:在字符串内检索指定的值,匹配到就返回指定的字符值。

参数:需要被检索的字符串。

demo:

var s1= str.match("abc");

var s2 = str.match("efg");

console.log(s1); // ["abc",index: 1, input: "1abc123abc456abc", groups: undefined]

console.log(s2); // null

注:该方法类似indexOf()和lastIndexOf(),但是它返回指定的值,没有就返回null

功能:连接两个或多个字符串,返回连接后的字符串。

参数:需要连接的字符串。

demo:

var str1="abc ";

var str2="123";

console.log(str1.concat(str2));   // "abc 123"

提示:如果需要拼接字符串,用运算符“+”更简单。

功能:把字符串转换为小写。

参数:无

demo:

var str = "ABC abc";

console.log(str.toLowerCase()); // abcabc

功能:把字符串转换为大写。

参数:无

demo:

var str = "ABC abc";

console.log(str.toUpperCase()); // ABCABC

功能:把字符串显示为大号字体。

参数:无

demo:

var s = str.big();

document.write(str+"");

document.write(s);

功能:把字符串显示为小号字。

参数:无

demo:

var s = str.small();

document.write(str+"");

document.write(s);

功能:把字符串显示为粗体。

参数:无

demo:

var s = str.bold();

document.write(str+"");

document.write(s);

功能:把字符串显示为斜体。

参数:无

demo:

var s = str.italics();

document.write(str+"");

document.write(s);

功能:将字符以指定的颜色显示。

参数:颜色名(red)、RGB 值(rgb(255,0,0))或者十六进制数(#FF0000)。

demo:

var s = str.fontcolor("red");

document.write(str+"");

document.write(s);

功能:将字符以指定的字号显示。

参数:size参数必须是从1和7之间的数字,1表示小的字号,7表示最大的字号。

demo:

var s = str.fontsize(7);

document.write(str+"");

document.write(s);

功能:把字符串显示为超链接。

参数:链接的URL。

demo:

var s =str.link("http://www.baidu.com");

document.write(str+"");

document.write(s);

功能:把字符串加字符串显示。

参数:无

demo:

var s = str.strike();

document.write(str+"");

document.write(s);

以上是对字符串方法的整理,如有修改、补充,后续会更新。

文中如果纰漏,错误,不合理,描述不清晰,不准确等问题,欢迎大家留言指正...

js中字符串的常见方法

首先创建一个字符串,创建字符串的方法有两种:

1.字面量:var str = "abc123efg456";

2.构造函数:var str = newString("abc123efg456");

其次,需要注意的是,javascript的字符串是不可变的,String类定义的方法都不可以改变字符串内容。若是需要通过方法改变字符串的内容,需要将返回值重新赋值给原来的字符串。如:str = str.toUpperCase();

下面,介绍比较常用的字符串的方法:

var str = "1abc123abc456abc";

功能:返回指定的字符串值在字符串中首次出现的位置。

参数:s为要检索的字符,必需;n为可选的字符参数,规定字符串检索的位置。

demo:

var index1 = str.indexOf("a");

var index2 =str.indexOf("a",8);

var index3 =str.indexOf("a",14);

console.log(index1); // 1

console.log(index2); // 13

console.log(index3); // -1  从检索的位置检索不到字符,返回-1

功能:返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

参数:s为要检索的字符,必需;n为可选的字符参数,规定字符串检索的位置。

demo:

var index1 =str.lastIndexOf("a"); 

var index2 =str.lastIndexOf("a",11);

var index3 =str.lastIndexOf("a",0);

console.log(index1); // 13

console.log(index2); // 7

console.log(index3); // -1  从检索的位置检索不到字符,返回-1

功能:返回指定位置的字符。

参数:n表示字符串中某个位置的索引,不写默认为第0个字符。

demo:

var s = str.charAt(3);

console.log(s);  // c

功能:返回指定位置的字符的Unicode编码。

参数:n表示字符串中某个位置的索引,可以没有参数,默认是索引为0的参数。

demo:

var s = str.charCodeAt(3);

console.log(s);  // 99

注:c的unicode编码为99。

注意:charAt(n)方法和charCodeAt(n)方法类似,前者返回的是字符,后者返回的是字符的unicode编码。

功能:将编码转成字符方法。

参数:十进制和十六进制,不支持unicode编码。

demo:

var s1 =String.fromCharCode("0x56fd");

var s2 = String.fromCharCode(22269);

console.log(s1);   //国

console.log(s2);  //国

注:“国”的十六进制编码是56fd,十进制是22269。

功能:根据指定位置,截取子串,从m到n,不包括n。

参数:m,n为索引。

demo:

var s = str.slice(2,7);

console.log(s); // bc123

功能:根据指定位置,截取子串,从m到n,不包括n。

参数:m,n为索引。

demo:

var s = str.substring(2,7);

console.log(s); // bc123

功能:根据指定位置,截取子串,从m位置取,共取n个。

参数:m,n为索引。

demo:

var s = str.substr(2,7);

console.log(s); // bc123ab

功能:字符串替换。

参数:oldstr为需要被替换的字符,newstr为替换的字符。

demo:

var s =str.replace("a","l");

console.log(s); // 1lbc123abc456abc

注意:每次只能替换一个符合条件的字符。

功能:分割字符,返回成为数组。

参数:"s"为分割的字符。

demo1:

var arr1 = str.split("b");

console.log(arr1);  // ["1a", "c123a","c456a", "c"]

demo2:

var arr2 = str.split(); //["1abc123abc456abc"]

console.log(arr2);

demo3:

var arr3 = str.split("");

console.log(arr3); // ["1","a", "b", "c", "1", "2","3", "a", "b", "c", "4","5", "6", "a", "b", "c"]

注意:参数不写的时候,返回原字符串组成的数组;参数为空字符的时候,将每个字符分割,返回一个数组

功能:检索字符串中指定的子字符串,返回第一个与字符串匹配的索引值。

参数:需要被检索的字符串。

demo:

var s1= str.search("abc");

var s2 = str.search("efg");

console.log(s1); // 1

console.log(s2); // -1

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

功能:在字符串内检索指定的值,匹配到就返回指定的字符值。

参数:需要被检索的字符串。

demo:

var s1= str.match("abc");

var s2 = str.match("efg");

console.log(s1); // ["abc",index: 1, input: "1abc123abc456abc", groups: undefined]

console.log(s2); // null

注:该方法类似indexOf()和lastIndexOf(),但是它返回指定的值,没有就返回null

功能:连接两个或多个字符串,返回连接后的字符串。

参数:需要连接的字符串。

demo:

var str1="abc ";

var str2="123";

console.log(str1.concat(str2));   // "abc 123"

提示:如果需要拼接字符串,用运算符“+”更简单。

功能:把字符串转换为小写。

参数:无

demo:

var str = "ABC abc";

console.log(str.toLowerCase()); // abcabc

功能:把字符串转换为大写。

参数:无

demo:

var str = "ABC abc";

console.log(str.toUpperCase()); // ABCABC

功能:把字符串显示为大号字体。

参数:无

demo:

var s = str.big();

document.write(str+"");

document.write(s);

功能:把字符串显示为小号字。

参数:无

demo:

var s = str.small();

document.write(str+"");

document.write(s);

功能:把字符串显示为粗体。

参数:无

demo:

var s = str.bold();

document.write(str+"");

document.write(s);

功能:把字符串显示为斜体。

参数:无

demo:

var s = str.italics();

document.write(str+"");

document.write(s);

功能:将字符以指定的颜色显示。

参数:颜色名(red)、RGB 值(rgb(255,0,0))或者十六进制数(#FF0000)。

demo:

var s = str.fontcolor("red");

document.write(str+"");

document.write(s);

功能:将字符以指定的字号显示。

参数:size参数必须是从1和7之间的数字,1表示小的字号,7表示最大的字号。

demo:

var s = str.fontsize(7);

document.write(str+"");

document.write(s);

功能:把字符串显示为超链接。

参数:链接的URL。

demo:

var s =str.link("http://www.baidu.com");

document.write(str+"");

document.write(s);

功能:把字符串加字符串显示。

参数:无

demo:

var s = str.strike();

document.write(str+"");

document.write(s);

以上是对字符串方法的整理,如有修改、补充,后续会更新。

文中如果纰漏,错误,不合理,描述不清晰,不准确等问题,欢迎大家留言指正...

Js基础-indexOf()方法的使用

indexOf()只返回字符串在规定的查找顺序中,首次出现的位置

工作中应用 => 如果要检索的字符串值没有出现,则该方法返回 -1

找数组中的元素 也可以使用es6的find()方法

非要对 number 类型使用 indexOf 方法嘞?那就转换成字符串咯,接着上例来写

findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

findIndex() 方法为数组中的每个元素都调用一次函数执行:

当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1

注意: findIndex() 对于空数组,函数是不会执行的。

注意: findIndex() 并没有改变数组的原始值。

参考这篇文章
https://www.jianshu.com/p/1c15be16a85a

indexOf() 方法可返回数组中某个指定的元素位置。

该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。

如果在数组中没找到指定元素则返回 -1。

对比:

1、findIndex()和indexOf方法实现都是通过循环遍历查找。

2、findIndex()的应用场景要比indexOf广泛一些,可以查找大于等于小于,表达式可以随便写,indexOf就只能在第一层查找相等的值。

3、findIndex()实际上相当于一个for循环,只不过找到了你不需要自己退出。

Js基础-indexOf()方法的使用

indexOf()只返回字符串在规定的查找顺序中,首次出现的位置

工作中应用 => 如果要检索的字符串值没有出现,则该方法返回 -1

找数组中的元素 也可以使用es6的find()方法

非要对 number 类型使用 indexOf 方法嘞?那就转换成字符串咯,接着上例来写

findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

findIndex() 方法为数组中的每个元素都调用一次函数执行:

当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1

注意: findIndex() 对于空数组,函数是不会执行的。

注意: findIndex() 并没有改变数组的原始值。

参考这篇文章
https://www.jianshu.com/p/1c15be16a85a

indexOf() 方法可返回数组中某个指定的元素位置。

该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。

如果在数组中没找到指定元素则返回 -1。

对比:

1、findIndex()和indexOf方法实现都是通过循环遍历查找。

2、findIndex()的应用场景要比indexOf广泛一些,可以查找大于等于小于,表达式可以随便写,indexOf就只能在第一层查找相等的值。

3、findIndex()实际上相当于一个for循环,只不过找到了你不需要自己退出。

JavaScript 中的indexOf("?")怎么理解?

indexOf是String对象的一个方法,作用是寻找子串在字符串中的位置,若找到,返回子串首次出现的下标,否则返回-1

stringObject.indexOf(searchvalue,fromindex)

searchvalue:要搜索的子串

fromindex:从哪个下标开始找(之前出现的被忽略),可选参数

注:indexOf区分大小写,并且下标从0开始

例:

var str="Hello world!"

document.write(str.indexOf("Hello") + "<br />");//0

document.write(str.indexOf("world") + "<br />");//6

document.write(str.indexOf("World") + "<br />");//-1

document.write(str.indexOf("o") + "<br />");//4

document.write(str.indexOf("o",5) + "<br />");//7

JavaScript中的字符串操作

一、概述

字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更多...JavaScript的核心部分提供了一组属性和方法用于通用的字符串操作,如分割字符串,改变字符串的大小写,操作子字符串等。

当前的大部分浏览器也能从强大的正则表达式获益,因为它极大地简化了大量的字符串操作任务,不过它也需要你克服一条有些陡峭的学习曲线。在这里,主要是介绍字符串本身的一些操作,正则表达式会在以后的随笔中涉及。

二、字符串的创建

创建一个字符串有几种方法。最简单的是用引号将一组字符包含起来,可以将其赋值给一个字符串变量。

var myStr = "Hello, String!";

可以用双引号或单引号将字符串包含,但要注意,作为界定字符串的一对引号必须是相同的,不能混用。

像var myString = "Fluffy is a pretty cat.'; 这样的声明就是非法的。

允许使用两种引号,使得某些操作变得简单,比如将一种嵌入另外一种:

document.write("img src='img/logo.jpg' height='30' width='100' alt='Logo'");

我们在上面脚本创建了几个字符串,但本质上,它们并不是真正的字符串对象,准确地说,它们是字符串类型的值。要创建一个字符串对象,可使用如下语句:var strObj = new String("Hello, String!");

使用typeof运算符查看会发现,上面的myStr类型为string,而strObj类型为object。

如果想知道字符串的长度,使用其length属性:string.length。

得到字符串的指定位置的字符使用方法:string.charAt(index);

三、字符串的拼接

问题:

将两个或多个字符串拼接为一个大的字符串

解决方案:

非常简单,就用一个"+"将两个字符串"相加":

var longString = "One piece " + "plus one more piece.";

要将多个字符串累积为一个字符串,还可以使用"+="操作符:

var result = "";

result += "My name is Anders"

result += " and my age is 25";

要在字符串中添加换行符,需要使用转义字符"":

var confirmString = "You did not enter a response to the last " +

"question.Submit form anyway?";

var confirmValue = confirm(confirmString);

但这种方法只能用在像警告、确认对话框之类的情况下,如果将这段文本作为HTML内容呈现,就无效了,此时 用"br"代替它:

var htmlString = "First line of string.brSecond line of string.";

document.write(htmlString);

String对象还提供了方法concat(),它完成与"+"相同的功能:

string.concat(value1, value2, ...)

不过concat()方法显然不如"+"来得直观简洁。

四、访问字符串的子串

问题:

获得一字符串的一部分的副本。

解决方案:

使用substring()或slice()方法(NN4+, IE4+),下面说明它们的具体用法。

substring()的原型为: string.substring(from, to)

第一个参数from指定了子字符串在原字符串中的起始位置(基于0的索引);第二个参数to是可选的,它指定了子字符串在原字符串的结束位置(基于0的索引),一般情况下,它应比from大,如果它被省略,那么子字符串将一直到原字符串的结尾处。

如果参数from不小心比参数to大了会怎样?JavaScript会自动调解子字符串的起止位置,也就是说,substring()总是从两个参数中较小的那个开始,到较大的那个结束。不过要注意,它包含起始位置的那个字符,但不包含结束位置的那个字符。

var fullString = "Every dog has his day.";

var section = fullString.substring(0, 4); // section is "Ever".

section = fullString.substring(4, 0); // section is also "Ever".

section = fullString.substring(1, 1); // section is an empty string.

section = fullString.substring(-2, 4); // section is "Ever", same as fullString.substring(0, 4); slice()的原型为: string.slice(start, end)

参数start表示子串的起始位置,如果为负数,那么可以理解为倒数第几个开始,例如-3表示从倒数第三个开始;参数end表示结束位置,与start一样,它也可以为负数,其含义也表示到倒数第几个结束。slice()的参数可以为负数,所以要比substring()更加灵活,但没那么宽容了,如果start比end要大,它将返回一个空字符串(示例略)。

还有一个方法是substr(),其原型为: string.substr(start, length)

从原型可以看出它的参数的含义,start表示起始位置,length则表示子字符串的长度。JavaScript标准不提倡使用该方法。

五、字符串的大小写转换

问题:

在你的页面上有文本框接收用户的输入信息,比如城市,然后你会根据他的城市的不同做不同的处理,这时自然会用到字符串比较,那么在比较前,最好进行大小写转换,这样只要考虑转换后的情形即可;或者要在页面上收集数据,然后将这些数据存储在数据库,而数据库恰好只接收大写字符;在这些情况下,我们都要考虑对字符串进行大小写转换。

解决方案:

使用toLowerCase()和toUpperCase()方法:

var city = "ShanGHai";

city = city.toLowerCase(); // city is "shanghai" now.

六、判断两个字符串是否相等

问题:

比如,你想拿用户的输入值与已知的字符串比较

解决方案:

先将用户的输入值全部转换为大写(或小写),然后再行比较:

var name = document.form1.txtUserName.value.toLowerCase();

if(name == "urname")

{

// statements go here.

}

JavaScript有两种相等运算符。一种是完全向后兼容的,标准的"==",如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转换,考虑下面的赋值语句:

var strA = "i love you!";

var strB = new String("i love you!");

这两个变量含有相同的字符序列,但数据类型却不同,前者为string,后者为object,在使用"=="操作符时,JavaScript会尝试各种求值,以检测两者是否会在某种情况下相等。所以下面的表达式结果为true: strA == strB。

第二种操作符是"严格"的"===",它在求值时不会这么宽容,不会进行类型转换。所以表达式strA === strB的值为false,虽然两个变量持有的值相同。

有时代码的逻辑要求你判断两个值是否不相等,这里也有两个选择:"!="和严格的"!==",它们的关系就类似于"=="和"==="。

讨论:

"=="和"!="在求值时会尽可能地寻找值的匹配性,但你可能还是想在比较前进行显式的类型转换,以"帮助"它们完成工作。比如,如果想判断一个用户的输入值(字符串)是否等于一个数字,你可以让"=="帮你完成类型转换:

if(document.form1.txtAge.value == someNumericVar) { ... }

也可以提前转换:

if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }

如果你比较习惯于强类型的编程语言(比如C#,Java等),那么这里你可以延续你的习惯(类型转换),这样也会增强程序的可读性。

有一种情况需要注意,就是计算机的区域设置。如果用""和""来比较字符串,那么JavaScript把它们作为Unicode来比较,但显然,人们在浏览网页时不会把文本当作Unicode来阅读:) 比如在西班牙语中,按照传统的排序,"ch"将作为一个字符排在"c"和"d"之间。localeCompare()提供了一种方式,可以帮助你使用默认区域设置下的字符排序规则。

var strings; // 要排序的字符串数组,假设已经得到初始化

strings.sort(function(a,b) { return a.localeCompare(b) }); // 调用sort()方法进行排序

七、字符串的查找

问题:

判断一个字符串是否包含另一个字符串。

解决方案:

使用string的indexOf()方法:

strObj.indexOf(subString[, startIndex])

strObj为要进行判断的字符串,subString为要在strObj查找的子字符串,startIndex是可选的,表示查找的开始位置(基于0的索引),如果startIndex省略,则从strObj开始处查找,如果startIndex小于0,则从0开始,如果startIndex大于最大索引,则从最大索引处开始。

indexOf()返回strObj中subString的开始位置,如果没有找到,则返回-1。在脚本中,可以这么使用:

if(largeString.indexOf(shortString) != -1)

{

// 如果包含,进行相应处理;

}

也许一个字符串会包含另一字符串不止一次,这时第二个参数startIndex也许会派上用场,下面这个函数演示如何求得一个字符串包含另外一个字符串的次数:

function countInstances(mainStr, subStr)

{

var count = 0;

var offset = 0;

do

{

offset = mainStr.indexOf(subStr, offset);

if(offset != -1)

{

count++;

offset += subStr.length;

}

}while(offset != -1)

return count;

}

String对象有一个与indexOf()对应的方法,lastIndexOf():

strObj.lastIndexOf(substring[, startindex])

strObj为要进行判断的字符串,subString为要在strObj查找的子字符串,startIndex是可选的,表示查找的开始位置(基于0的索引),如果startIndex省略,则从strObj末尾处查找,如果startIndex小于0,则从0开始,如果startIndex大于最大索引,则从最大索引处开始。该方法自右向左查找,返回subString在strObj中最后出现的位置,如果没有找到,返回-1。

八、在Unicode值和字符串中的字符间转换

问题:

获得一个字符的Unicode编码值,反之亦然。

解决方案:

要获得字符的Unicode编码,可以使用string.charCodeAt(index)方法,其定义为:

strObj.charCodeAt(index)

index为指定字符在strObj对象中的位置(基于0的索引),返回值为0与65535之间的16位整数。例如:

var strObj = "ABCDEFG";

var code = strObj.charCodeAt(2); // Unicode value of character 'C' is 67

如果index指定的索引处没有字符,则返回值为NaN。

要将Unicode编码转换为一个字符,使用String.fromCharCode()方法,注意它是String对象的一个"静态方法",也就是说在使用前不需要创建字符串实例:

String.fromCharCode(c1, c2, ...)

它接受0个或多个整数,返回一个字符串,该字符串包含了各参数指定的字符,例如:

var str = String.fromCharCode(72, 101, 108, 108, 111); // str == "Hello"

讨论:

Unicode包含了这个世界上很多书写语言的字符集,但别因为Unicode包含一个字符就期望这个字符能够在警告对话框、文本框或页面呈现时正常显示。如果字符集不可用,在页面将显示为问号或其它符号。一台典型的北美的计算机将不能在屏幕上显示中文字符,除非中文的字符集及其字体已经安装。

博科教育还为您提供以下相关内容希望对您有帮助:

判断字符串中是否包含某个字符串

1. indexOf() indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 如果要检索的 字符串值没有出现,则该方法返回 -1。2. search() search() 方法用于检索字符串中指定的子字符串,或检...

JS 中的字符串方法

concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串。indexOf() –返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回 -1 。charAt() – 返回指定位置的字符。lastIndexOf() –返回字符串...

Js基础-indexOf()方法的使用

1、findIndex()和indexOf方法实现都是通过循环遍历查找。2、findIndex()的应用场景要比indexOf广泛一些,可以查找大于等于小于,表达式可以随便写,indexOf就只能在第一层查找相等的值。3、findIndex()实际上相当于一个for循...

js判断字符串中是否包含某个字符

可以用js的indexOf,lastIndexOf函数进行判断。这两个函数返回字符出现的位置,如果没有找到,就会返回"-1"。也可以使用match,search方法,查找字符串当中是否存在某个字符。

js中字符串的常见方法

首先创建一个字符串,创建字符串的方法有两种:1.字面量:var str = "abc123efg456";2.构造函数:var str = newString("abc123efg456");其次,需要注意的是,javascript的字符串是不可变的,String类定义的方法都不...

js中怎么判断一个字符串是否在另一个字符串中

js中判断一个字符串包含另外一个字符串的方式比较多,比如indexOf()方法,注意O是大写。var test="this is a test";if(test.indexOf("test")!=-1){ //不等于-1表示该字符串包含子字符串。} ES6又提供了三种新...

js 获取字符串出现的位置

将其放入一个数组,通过split函数:代码如下:结果如下:已在一个数组。通过循环查找字符串“item_2000203024”,代码如下:语句:str.indexOf;结果:

indexOf()的用法,具体是什么意思??

如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。提示和注释 注释:indexOf() 方法对大小写敏感!注释:如果要检索的字符串值没有出现,则该方法返回 -1。

js中IndexOf()是干什么用的呢?怎么用?

它所查出来的是你给的母字符串(也就是str)中某一个字符的下标位置,比如第一个Hello在 Hello world中 Hello的第一个字符H在第一位,因为从0开始算的,所以输出0。 而第二个因为在Hello world中查找World(注意大小写w...

初学者求教,如何在字符串中查找多个子字符串的位置

positions.push(pos);pos = str.indexOf(subStr,pos+1);} } searchSubStr(str,"o");alert(positions);//8,11,29,37,51,64 这个例子通过不断增加indexOf()方法开始查找的位置,遍历了一个长字符串。在循环之外,...

Top