注意: 规范中规定 toFixed() 方法可以表示带有 0 ~ 20 个小数位的数值,但有的浏览器支持更多位数。
注意: 规范中规定 toPrecision() 方法可以表示带有 1 ~ 21 个小数位的数值,但有的浏览器支持更多位数。
这些方法对原始字符串没有影响,如果没有给这些方法传递第二个参数,就会将字符串的长度作为结束位置。
方法名 | 接受参数 | 说明 |
---|---|---|
slice() | 字符串开始位置、子字符串最后一个字符后面的位置(可选) | 如果参数是负数,会将负值与字符串的长度相加 |
substring() | 字符串开始位置、子字符串最后一个字符后面的位置(可选) | 将所有的负值转换为 0 |
substr() | 字符串开始位置、需要返回的字符个数(可选) | 负的第一个参数加上字符串长度,负的第二个参数转换为 0 |
字符序列 | 替换文本 |
---|---|
$$ | $ |
$& | 匹配整个模式的子字符串(与 RegExp.lastMatch 的值相同) |
$’ | 匹配的子字符串之前的子字符串(与 RegExp.leftContext 的值相同) |
$` | 匹配的子字符串之后的子字符串(与 RegExp.rightContext 的值相同) |
$n | 匹配第 n 个捕获组的子字符串。n 为 0 ~ 9。如果正则表达式没有定义捕获组,则使用空字符串 |
$nn | 匹配第 nn 个捕获组的子字符串。n 为 01 ~ 99。如果正则表达式没有定义捕获组,则使用空字符串 |
* 使用特殊的字符序列,可以使用最近一次匹配结果中的内容:
var text = "cat,bat,sat,fat";result = text.replace(/(.at)/g, "Word ($1)");console.log(result);//word (cat),word (bat),word (sat),word (fat)replace() 的第二个参数也可以是函数。在只有一个匹配项的情况下,会向这个函数传递 3 个参数:模式的匹配项、模式匹配项在字符串中的位置以及原始字符串。在正则表达式中定义了多个捕获组的情况下,传递给函数的参数依次是模式的匹配项、第一个捕获组的匹配项、第二个捕获组的匹配项……,最后两个参数是模式匹配项在字符串中的位置以及原始字符串。因此这个函数可以实现更加精细的替换操作:function htmlEscape(text) { return text.replace(/[<>"&]/g, function (match, pos, originalText) { switch (match) { case "<": return "<"; case ">": return ">"; case "&": return "&"; case "/"": return """; } }); } console.log(htmlEscape("<p class=/"greeting/">Hello world!</p>"));//<p class="greeting">Hello world!</p>split() 基于指定的分隔符将一个字符串分割成多个子字符串,并将结果放入数组中。分隔符可以是字符串或者 RegExp 对象。她还接受第二个参数,用于指定数组的大小:var colorText = "red,blue,green,yellow";console.log(colorText.split(","));console.log(colorText.split(",", 2));console.log(colorText.split(/[^/,]+/));对 split() 中正则表达式的支持因浏览器而异,因此在使用时,一定要在各种浏览器下做一做测试。比较两个字符串,并返回: * 如果字符串在字母表中排在字符串参数之前,则返回负数。 * 如果字符串等于字符串参数,则返回 0。 * 如果字符串在字母表中排在字符串参数之后,则返回正数。
var stringValue = "yellow";console.log(stringValue.localeCompare("brick"));//1console.log(stringValue.localeCompare("yellow"));//0console.log(stringValue.localeCompare("zoo"));//-1因为 localeCompare() 返回的数值取决于实现,因此最好这样使用: function determineOrder(value) { var result = stringValue.localeCompare(value); if (result < 0) { console.log("The string 'yellow' comes before the string '" + value + "'."); } else if (result > 0) { console.log("The string 'yellow' comes after the string '" + value + "'."); } else { console.log("The string 'yellow' is equal to the string '" + value + "'."); } } determineOrder("brick"); determineOrder("yellow"); determineOrder("zoo");localeCompare() 所支持的地区决定了这个方法的行为。在美国地区,localeCompare() 是区分大小写的,因此大写字母排在小写字母前是一个决定性的比较规则。其他地区就不一定了,要测试过了才知道哦 O(∩_∩)O~
接收一或者多个字符编码,然后转换为字符串。她是与 charCodeAt() 相反的操作:
console.log(String.fromCharCode(104, 101, 108, 108, 111));//hello有些浏览器扩展了标准,实现了一些专门用于简化 HTML 格式化任务的方法。最好不要使用,因为它们创建的标记通常无法表达语义,而且不通用,所以这里就不详细列出了哦 O(∩_∩)O~
新闻热点
疑难解答