String
string.charAt(pos); //返回字符串中pos位置处的字符。如果pos小于0或大于等于string.length返回空字符串。
模拟实现:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
String.method('charAt', function (pos) {
return this.slice(pos, pos + 1);
});
示例:
var name = 'yyl yin';
var a = name.charAt(3);
var b = name.charAt(4);
var c = name.charAt(8);
var d = name.charAt(-1);
console.log(a);
console.log(b);
console.log(c);
console.log(d);
=>''
=>'y'
=>''
=>''
string.charCodeAt(pos); //返回字符串中pos位置处字符的字符码位。如果pos小于0或大于等于string.length返回NaN。
示例:
var name = 'yyl yin';
var a = name.charCodeAt(3);
var b = name.charCodeAt(4);
var c = name.charCodeAt(8);
var d = name.charCodeAt(-1);
console.log(a);
console.log(b);
console.log(c);
console.log(d);
=>32
=>121
=>NaN
=>NaN
string.concat(string...); //将字符串连接构成一个新的字符串。
示例:
var a = 'yyl';
var b = 'good';
var c = a.concat(b, 'boy');
console.log(a);
console.log(b);
console.log(c);
=>'yyl'
=>'good''
=>'yylgoodboy'
string.indexOf(searchString, position); //如果可以找到searchingString,返回第一个匹配字符的位置,否则返回-1。可选参数指定开始查找的位置。
示例:
var a = 'uyydfekjkdyj0';
var b = a.indexOf('y');
var c = a.indexOf('y', 2);
var d = a.indexOf('q');
console.log(b);
console.log(c);
console.log(d);
=>1
=>2
=>-1
string.lastIndexOf(searchString, position); //与indexOf类似,只不过它是从字符串的尾部开始查找。
示例:
var a = 'uyydfekjkdyj0';
var b = a.lastIndexOf('y');
var c = a.lastIndexOf('y', 2);
var d = a.lastIndexOf('q');
console.log(b);
console.log(c);
console.log(d);
=>10
=>2
=>-1
string.localeCompare(that); //比较两个字符串大小。如果string和that相等,返回0。如果string小于that返回-1。如果string大于that返回1。注意:小写小于大写。
示例:
var a = 'Abc';
var b = 'Abc';
var c = 'abc';
var d = 'dd';
var e = 'd';
var f = 'D';
console.log(a.localeCompare(b));
console.log(a.localeCompare(c));
console.log(a.localeCompare(d));
console.log(e.localeCompare(f));
=>0
=>1
=>-1
=>-1
string.match(regexp); //如果没有g,其匹配结果与调用regexp.exec(string);的结果相同。如果regexp带有g,那么它生成一个包含所有匹配的数组(不包括捕获数组)。
示例:
var a = 'abc abc abc';
var regexp1 = /(a)(b)(c)/;
var regexp2 = /(a)(b)(c)/g;
var b = a.match(regexp1);
var c = a.match(regexp2);
console.log(b);
console.log(c);
=>['abc', 'a', 'b', 'c']
=>['abc', 'abc', 'abc']
string.replace(searchValue, replaceValue); //对字符串进行查找替换操作,返回新的字符串。如果正则没有g,仅仅替换第一个。如果正则有g,会替换掉所有匹配。replaceVaule可以是一个字符串或函数。
如果replaceValue是一个字符串。字符$有特殊的含义。
$$ 替换对象:$
$& 替换对象:整个匹配的文本
$number 替换对象:分组捕获的文本
$` 替换对象:匹配之前的文本
$' 替换对象:匹配之后的文本
示例:
var regexp = /\((\d{3})\)/g;
var a = '(555)-222-1212';
var b = a.replace(regexp, '$1');
console.log(a);
console.log(b);
=>'(555)-222-1212'
=>'555-222-1212'
如果returnValue是一个函数,那么每遇到一次匹配,函数就被调用一次,该函数返回的字符串会被用在替换文本。传递给这个函数的第一个参数是整个被匹配的文本。第二个参数是分组1捕获的文本,以此类推。
string.search(regexp); //功能与indexOf类似,但是它只接受正则表达式作为参数。如果找到匹配,返回第一个匹配的首字母的位置,否则返回-1。此方法会忽略g标识。
示例:
var a = 'dad dvdc dd acc';
var b = a.search(/dv/);
console.log(a);
console.log(b);
=>'dad dvdc dd acc'
=>4
string.slice(start, end); //复制string的一部分来构造一个新的字符串。左闭右开,[start, end)。如果start,end是负数,string.length会与其相加。end参数是可选的。
示例:
var a = 'abc.png';
var b = a.slice(3);
var c = a.slice(0, 3);
var d = a.slice(-3);
console.log(a);
console.log(b);
console.log(c);
console.log(d);
=>abc.png
=>.png
=>abc
=>png
string.substring(start, end); //除了不能处理负值参数外,其它方面与slice方法一致。
示例:
var a = 'abc.png';
var b = a.substring(3);
var c = a.substring(0, 3);
var d = a.substring(-3);
console.log(a);
console.log(b);
console.log(c);
console.log(d);
=>abc.png
=>.png
=>abc
=>abc.png
string.substr(start, len); //复制string的一部分来构造一个新的字符串。第二个参数传入需要复制的字符个数。如果start是负数,string.length会与其相加。
var a = 'abc.png';
var b = a.substr(3, 3);
var c = a.substr(0, 11);
var d = a.substr(-3, 3);
console.log(a);
console.log(b);
console.log(c);
console.log(d);
=>abc.png
=>.pn
=>abc.png
=>png
string.split(separator, limit); //将string分割成片段来创建一个字符串数组。separator可以是一个字符串或正则表达式。limit可以限制分割的片段数量。该方法会忽略g。
当separator是一个字符串时:
示例:
var a = 'abcdef';
var b = a.split('', 5);
console.log(a);
console.log(b);
=>'abcdef'
=>['a', 'b', 'c', 'd', 'e']
var c = '|ddd|aaa|';
var d = c.split('|');
console.log(c);
console.log(d);
=>'|ddd|aaa|'
=>['', 'ddd', 'aaa', '']
当separator是正则表达式时:
分组捕获的文本,会被包含在分割后的数组中。IE8及以下的版本,会在输出的数组中排除空字符串。
示例:
var a = '|ddd|aaa|';
var b = a.split(/\|/);
console.log(a);
console.log(b);
=>'|ddd|aaa|'
=>['', 'ddd', 'aaa', '']
IE8:
=>'|ddd|aaa|'
=>['ddd', 'aaa']
var c = '|ddd|aaa|';
var d = c.split(/(\|)/);
console.log(c);
console.log(d);
=>'|ddd|aaa|'
=>['', '|', 'ddd', '|', 'aaa', '|', '']
string.toLowerCase(); //返回一个新字符串。这个字符串的所有字符都是小写格式。
示例:
var a = 'SdweA';
var b = a.toLowerCase();
console.log(a);
console.log(b);
=>'SdweA'
=>'sdwea'
string.toUpperCase(); //返回一个新字符串。这个字符串的所有字符都是大写格式。
示例:
var a = 'SdweA';
var b = a.toUpperCase();
console.log(a);
console.log(b);
=>'SdweA'
=>'SDWEA'
String.fromCharCode(char...); //这是一个静态方法,根据一串数组编码返回一个字符串。
示例:
var a = String.fromCharCode(67, 98, 111);
console.log(a);
=>'Cbo'
string.toLocaleLowerCase(); //返回一个新字符串。使用本地化的规则,把这个字符串中的所有字母,转换成小写格式。主要用于土耳其语。
string.toLocaleUpperCase(); //返回一个新字符串。使用本地化的规则,把这个字符串中的所有字母,转换成小写格式。主要用于土耳其语。