JavaScript FAQ(六)——字符串

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:  四、字符串 1. 字符串中的引号(Quotes in String)Q:我如何在字符串中插入引号呢?A:字符串中的引号应该用一个反斜杠(/)引导。如此,JavaScript就会分辨出这些引号是普通字符串还是字符串的分隔符。

 四、字符串

 

1. 字符串中的引号(Quotes in String

Q:我如何在字符串中插入引号呢?

A:字符串中的引号应该用一个反斜杠(/)引导。如此,JavaScript就会分辨出这些引号是普通字符串还是字符串的分隔符。下面是示例:

string1='It/'s five o/'clock!';
string2="<A HREF=/"index.htm/">";

或者,如果字符串中只包含有单引号,那么你可以使用双引号作为字符串的分隔符,反之亦然。下面是一个例子:

string1="It's five o'clock!";
string2='<A HREF="index.htm">';

2. 将数字转化为字符串( Converting Numbers to Strings

Q:在JavaScript中,我怎样将数字转化为字符串?

A:最简单的方法是数字变量加上一个空字符串,例如:

a = a+'' // This converts a to string
b += ''  // This converts b to string

在上面的例子中,结果字符串中保存的是十进制的数字,如果要转化为二进制、八进制或者十六进制(或其他任何进制)字符串,参加(转化其他进制 Converting to Another Base)。

 

3. 将字符串转化为数字(Converting Strings to Numbers

Q:在JavaScript中,我怎样把字符串转化为数字呢?

A:要将字符串转化为数字,可以使用JavaScript的函数parseFloat(转化为浮点数)或者parseInt(转化为整数)。

 

parseFloat语法:parseFloat('string')

 

工作方式:

parseFloat的参数必须为字符串或字符串表达式。parseFloat的返回结果是字符串内数字的十进制数(或者是字符串最开始的数字)。如果字符串不能被解析为一个十进制数,那么返回值将由于浏览器而不同(0或者NaN)。

示例(注释内是转化结果):

parseFloat('1.45kg')  // 1.45
parseFloat('77.3')    // 77.3
parseFloat('077.3')   // 77.3
parseFloat('0x77.3')  // 0
parseFloat('.3')      // 0.3
parseFloat('0.1e6')   // 100000

parseInt语法: parseInt('string' [, base])

 

工作方式:

parseInt的第一个参数必须是字符串或者字符串表达式。parseInt的返回结果是字符串包含的一个整数(或者字符串最开始的一个整数)。第二个参数(base),如果有,给出了字符串中数字的进制。参数base的值可以从2到36之间的任何一个值。

如果只有一个参数,数字的进制会通过JavaScript的一般语法来检测。以0x或-0x开头的字符串会被解析为十六进制数;以0或者-0开始的字符串会被解析为八进制数;其他都作为十进制数对待。

如果字符串参数不能被解析为一个整数,返回结果也会根据浏览器的不同而不同(0或者NaN)。

示例(行后的注释是转化结果):

parseInt('123.45')  // 123
parseInt('77')      // 77
parseInt('077',10)  // 77
parseInt('77',8)    // 63  (= 7 + 7*8)
parseInt('077')     // 63  (= 7 + 7*8)
parseInt('77',16)   // 119 (= 7 + 7*16)
parseInt('0x77')    // 119 (= 7 + 7*16)
parseInt('099')     // 0 (9 is not an octal digit)
parseInt('99',8)    // 0 or NaN, depending on the platform
parseInt('0.1e6')   // 0
parseInt('ZZ',36)   // 1295 (= 35 + 35*36)

4. 子字符串( Substrings

Q:我怎样从一个字符串中抽取一个子字符串呢?

A:要从一个字符串中抽取一个子字符串,可以使用substring方法:

 

string.substring(start, end)

 

这里:

string 是你想从其中抽取子字符串的字符串。

start 是一个数字,指定子字符串开始的字符的位置。(在start位置上的字符也会包含到子字符串中。)

end 是一个数字,指定子字符串结束的字符的位置。(在end位置上的字符不会包含到字符串中。)

注意,字符串中第一个字符的位置是0,最后一个是string.length-1。

示例:

'Hello'.substring(0,2)  // 'He'
'Hello'.substring(0,4)  // 'Hell'
'Hello'.substring(1,3)  // 'el'

5. URL-encoding

Q:我如何把一个字符串转化URL-encoding?

A:要把一个字符串转化URL编码形式以适合作为一个查询字符串传递(或者,一般来说,即作为URL的一部分),可以使用escape函数。这个函数工作原理是:数字、拉丁字母和+ - * / . _ @保持不变,其他所有字符串都被转化为%XX的转义形式,其中XX是原字符的ASCII码。例如:

escape("It's me!") // result: It%27s%20me%21

在可以识别Unicode的浏览器上(支持JavaScript1.3),函数escape会有更加复杂的动作。如果输入是Unicode字符串,将被转化为转义后的Unicode形式%uXXXX。

 

6. 反转义(unescape

Q:我如何从URL-encoding转化字符串?

A:要从URL-encoding形式转化字符串,可以使用JavaScript函数unescape(string)。这个函数的工作方式是:如果字符串包含形如%XX的转义序列,其中XX代表两个十六进制数字,每一个转义序列都会被ASCII码是XX的字符替代。因此,字符串保持不变。

(在可以识别Unicode的浏览器上,除了转义序列%XX外,函数unescape也可以处理%uXXXX形式的转义序列。)

例如:

unescape("It%27s%20me%21")   // result: "It's me!"

目录
相关文章
|
2月前
|
JavaScript 前端开发
JS几种拼接字符串的方法
JS几种拼接字符串的方法
53 1
|
4月前
|
存储 JavaScript 前端开发
JS上传文件(base64字符串和二进制文件流)
这篇文章介绍了两种JavaScript文件上传的方法:使用FileReader对象将文件读取为base64字符串上传,以及使用FormData对象以二进制文件流的形式上传文件,包括如何处理文件选择、读取和上传的详细代码示例。
528 2
JS上传文件(base64字符串和二进制文件流)
|
3月前
|
JavaScript
js 解析 byte数组 成字符串
js 解析 byte数组 成字符串
91 5
|
1月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
|
1月前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
25 2
|
2月前
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
48 3
|
3月前
|
JavaScript 前端开发
javascript创建字符串
javascript创建字符串
|
3月前
|
JavaScript 前端开发
如何在JavaScript中替换字符串:一篇详细指南
如何在JavaScript中替换字符串:一篇详细指南
|
3月前
|
存储 JavaScript
js切割截取字符串方法
js切割截取字符串方法
61 2
|
3月前
|
Web App开发 JavaScript 前端开发
JavaScript 模板字符串
JavaScript 模板字符串
52 3