1、.indexOf() 返回某个字符在字符串中首次出现的位置大小写敏感。如果没有,返回 -1 。
- indexOf(value, index)
- searchvalue 必需。 规定需检索的字符串值。
- index 可选。 整数,规定在字符串中开始检索的位置。
例:
var char = "hello world everyone";
console.log( char.indexOf( 'w' ) ); // 6
console.log( char.indexOf( 'w', 7 ) ); // 21 从位置7开始,world的'w'不在范围内。
console.log( char.indexOf( 'world' ) ); // 6
2、.charAt() 返回指定位置的字符。
- stringObject.charAt(index) index: 必需。字符在字符串中的下标。
var char = "hello world everyonesw";
console.log( char.charAt( 1 ) ) // e
3、.charCodeAt( index ) 返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。
- stringObject.charCodeAt( index )
- index 必需。 表示字符串中某个位置的数字,即字符在字符串中的下标。
- 如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。
例:
var char = "hello world everyone";
console.log( char.charCodeAt( 1 ) ); // 101
console.log( char.charCodeAt( 2 ) ); // 108
4、.substring() 方法用于提取字符串中介于两个指定下标之间的字符。
- “stringObject.substring(start,stop)”
- start 必需,非负整数,规定开始字符所在位置。
- stop 可选,非负整数,规定结束字符所在位置。如果省略,则返回的子串会一直到字符串的结尾。
var char = "hello world everyonesw";
console.log( char.substring( 3 ) ) // lo world everyonesw
console.log( char.substring( 0,1 ) ) // h
console.log( char.substring( 0,21 ) ) // hello world everyones
5.join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。返回一个字符串。
- strObj.join(divide)
var arr = ["hello","I","like","this"];
console.log(arr.join(';')); //hello;I;like;this
6.split() 方法把一个字符串分割成数组(join相反)。
- strObj.split(separator,howmany)
- separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
- howmany 可选。指定返回的数组的最大长度。子串<=改值。如果没有设置,整个字符串都会被分割。
var str2 = "How are you doing today?";
console.log(str2.split(" ")); //["How", "are", "you", "doing", "today?"]
console.log(str2.split("")); // ["H", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u", " ", "d", "o", "i", "n", "g", " ", "t", "o", "d", "a", "y", "?"]
console.log(str2.split(" ", 3)); // ["How", "are", "you"]
7、ECMAscript 没有对该方法进行标准化,因此反对使用它。
- stringObject.substr(start,length);
- start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
// length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
var str = "hello world";
console.log(str.substr(1,4)); //(firefox&chrome&IE7) ello
console.log(str.substr(-1,4)); //(firefox&chrome) d (IE7) hell
8.concat() 方法用于连接两个或多个数组(字符串)。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var str3 = "helllo";
var str4 = "world";
var arr1 = [3,5];
var arr2 = [6,7];
console.log(arr2.concat(arr1)); //[6, 7, 3, 5]
console.log(str3.concat(str4)); //hellloworld
9.大小写转换,IE7支持
与 toLowerCase() 不同的是,toLocaleLowerCase() 方法按照本地方式把字符串转换为小写。只有几种语言(如土耳其语)具有地方特有的大小写映射,所有该方法的返回值通常与 toLowerCase() 一样。
// 大转小
var low = "HELLO WORLD";
console.log(low.toLowerCase());
console.log(low.toLocaleLowerCase());
// 小转大
var pper = "hellow world";
console.log(pper.toUpperCase());
console.log(pper.toLocaleUpperCase());
10.match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。
如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。
不过全局匹配返回的数组的内容与前者大不相同,它的数组元素中存放的是 stringObject 中所有的匹配子串,而且也没有 index 属性或 input 属性。
在全局检索模式下,match() 即不提供与子表达式匹配的文本的信息,也不声明每个匹配子串的位置。如果您需要这些全局检索的信息,可以使用 RegExp.exec()。
var str="Hello world!";
console.log(str.match("world"));// ["world", index: 6, input: "Hello world!"]
console.log(str.match("World")); //null
console.log(str.match("worlld")); //null
console.log(str.match("world!"));//["world", index: 6, input: "Hello world!"]
var patt5 = /\w/g;
console.log( str.match( patt5 ) ); //["H", "e", "l", "l", "o", "w", "o", "r", "l", "d"]
11.exec()
相同:在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。
不同:,无论 RegExpObject 是否是全局模式,exec() 都会把完整的细节添加到它返回的数组中。这就是 exec() 与 String.match() 的不同之处,后者在全局模式下返回的信息要少得多。
exec() 方法还返回两个属性。index 属性声明的是匹配文本的第一个字符的位置。input 属性则存放的是被检索的字符串 string。
var str = "Visit W3School or W3School and W2School";
var patt = /W2School/g;
var result = patt.exec(str);
console.log(result); //
12.search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
返回值: stringObject 中第一个与 regexp 相匹配的子串的起始位置。
注释:如果没有找到任何匹配的子串,则返回 -1。search() 方法不执行全局匹配,它将忽略标志 g
// 8.search()
var str8 = "hello world 34";
console.log(str8.search("world")); // 6
var patt = /[0-9]/g;
console.log(str8.search(patt)); // 12
13.replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
var str = "hello world everyone";
console.log(str.replace(/hello/,'hi')); // hi world everyone
console.log(str.replace('hello','hi')); //hi world everyone
14.test() 方法用于检测一个字符串是否匹配某个模式.如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。
var str = "Visit W3School";
var patt1 = new RegExp("W3School");
var result = patt1.test(str);
console.log(result);