JavaScript String 对象的方法

268 阅读5分钟
  • substring() 方法返回的子串包括开始处的字符,但不包括结束处的字符。
   语法:string.substring(from, to)

 from:必需。一个非负的整数,规定要提取的子串的第一个字符在 string Object 中的位置。

 to:可选。一个非负的整数,比要提取的子串的最后一个字符在 string Object 中的位置多1。

例如:

var str = "410481199610015521";

console.log(str.substring(0,2));//打印:41

  • substr()方法可在字符串中抽取从 start 下标开始的指定数目的字符。

 语法:stringObject.substr(start,length)

start:必需。要抽取的子串的起始下标。如果是负数,那么该参数声明从字符串的尾部开始算起的位置,-1表示最后一位。

 length:可选。子串中的字符数。

例如:

var str = "410481199610015521";

console.log(str.substr(-3,3));//打印:521

  • slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

语法:stringObject.slice(start,end) 

注意:返回值包含 start,不包含end

start起始下标;如果是负数代表从字符串尾部开始算起,-1表示最后一位,-2表示倒数第二个字符。

end要抽取的片段的结尾的下标。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

例如:

var str="012345678";

var n=str.slice(1,5); // 1234  包含1,不包含5

var n=str.slice(1,6); // 12345 包含1,不包含6

  • split() 方法用于把一个字符串分割成字符串数组。

语法:string.split(separator, limit)

separator:可选。字符串或正则表达式,从该参数指定的地方分割 string Object。
limit可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

例如:

var str="How are you doing today?";

var n=str.split(" ");

console.log(n); // How,are,you,doing,today?

  • charAt()方法可返回指定的字符串,返回在指定位置的字符。第一个字符位置为 0, 第二个字符位置为 1,以此类推.

语法:string.charAt(index)

index:必需。表示字符串中某个位置的数字,即字符在字符串中的位置。

例如:

var str = "HELLO WORLD";

var n = str.charAt(2);

console.log(n); // L

  • concat() 方法用于连接两个或多个字符串。该方法没有改变原有字符串,但是会返回连接后的新字符串。

语法:string.concat(string1,string2, ...,stringX)

例如:

var str1="Hello ";

var str2="world!";

var str3=" Have a nice day!";

var n = str1.concat(str2,str3);

console.log(n); // Hello world! Have a nice day!

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

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

语法:string.indexOf(searchvalue,start)

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

例如:

var str="Hello world, welcome to the universe.";

var n=str.indexOf("e",5);

console.log(n); // 14

  • includes() 方法用于判断字符串是否包含指定子字符串,如果找到匹配的字符串返回true,否则返回false。

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

语法:string.includes(searchvalue, start)

searchvalue:必需,要查找的字符串。
start:可选,设置从那个位置开始查找,默认为 0。

例如:

var str = "Hello world, welcome to the Runoob.";

var n = str.includes("world", 12);

console.log(n); // false 

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

语法:string.replace(searchvalue,newvalue)

searchvalue :必须。规定子字符串或要替换的模式的 RegExp 对象。注意,如果searchvalue是一个普通字符串,那么只会进行一次匹配。

例如1:

var str="Visit Microsoft! Visit Microsoft!"; 

var n=str.replace("Microsoft","Runoob");

console.log(n); // Visit Runoob!Visit Microsoft!     注意:只进行了一次匹配。

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

var str="Mr Blue has a blue house and a blue car"; 

var n=str.replace(/blue/gi, "red"); 

修饰符:用于执行区分大小写和全局匹配

g 表示 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

i 表示 执行对大小写不敏感的匹配。

console.log(n); // Mr red has a red house and a red car

例如3: 我们通过 prototype 为 JavaScript 的 String 对象添加方法,来实现将所有 "Microsoft" 替换为 "Runoob":

String.prototype.replaceAll = function(search, replacement) { 

   var target = this; 

   return target.replace(new RegExp(search, 'g'), replacement); 

};

  • trim() 方法用于删除字符串的头尾空格,不会改变原始字符串。

例如1:

var str = "        Runoob          "; 

alert(str.trim()); // Runoob

例如2:如果你的浏览器不支持trim方法,你就可以使用正则表达式来实现。

function myTrim(x) { 

 return x.replace(/^\s+|\s+$/gm,'');

注释:^表示匹配任何开头为 n 的字符串。

\s 表示查找空白字符。

n+ 表示匹配任何包含至少一个 n 的字符串。

所以 ^\s+ 表示匹配至少一个开头为空格的字符串。

n$ 表示匹配任何结尾为 n 的字符串。

所以\s+$ 表示匹配至少一个以空格结尾的字符串。

function myFunction() 

 var str = myTrim(" Runoob "); 

 alert(str); 

}