JavaScript FAQ(六)——字符串

43 篇文章 0 订阅
33 篇文章 0 订阅

 四、字符串

 

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!"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值