Rumah > Artikel > hujung hadapan web > Bagaimana untuk menukar rentetan kepada nombor dalam javascript
Kaedah penukaran: 1. Gunakan operator seperti "-", "*", "/", "%", " ", "--" 2. Gunakan pernyataan "Nombor (nilai)". ; 3. Gunakan pernyataan "parseInt(stringNum)" 4. Gunakan pernyataan "parseFloat(stringNum)".
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
javascript menukar rentetan kepada nombor
Kaedah 1: Gunakan -
, *
, /
, %
,
, -- dan pengendali lain
JavaScript akan secara automatik menukar rentetan kepada nombor, dan rentetan yang tidak boleh ditukar kepada nombor akan ditukar kepada NaN. Contohnya:
alert("30"/5); //除运算,结果为:6 alert("15"-5); //减运算,结果为:10 alert("20"*"a"); //乘运算,结果为:NaN alert("20"%"3"); //取模运算,结果为:2
var num1 = "6"; var num2 = "6"; var num3 = "a"; alert(++num1); //将字符串转换为数字再进行++运算,结果为:7 alert(--num2); //将字符串转换为数字再进行--运算,结果为:5 alert(++num3); //字符串无法转换为数字,结果为:NaN
Kaedah 2: Gunakan fungsi Number()
Fungsi Number() boleh menukar parameter menjadi nombor
Gunakan format seperti berikut:
Number(value)
Number() melakukan penukaran keseluruhan nilai parameter Apabila nilai parameter mengandungi simbol yang tidak boleh ditukar kepada nombor di mana-mana sahaja , penukaran gagal NaN ini akan dikembalikan jika , jika tidak nombor yang ditukar akan dikembalikan.
Nombor() mengikut peraturan berikut apabila menukar parameter kepada nombor:
Jika parameter hanya mengandungi nombor, ia akan ditukar kepada nombor perpuluhan, mengabaikan pendahuluan 0 dan ruang hadapan; jika nombor didahului dengan -, - akan dikekalkan dalam hasil penukaran; parameter mengandungi nombor titik terapung yang sah , akan ditukar kepada nombor titik terapung yang sepadan, mengabaikan ruang hadapan dan jika nombor didahului oleh -, - akan dikekalkan dalam hasil penukaran jika nombor itu didahului; tanda akan dipadamkan selepas penukaran;
Jika parameter mengandungi nombor perenambelasan yang sah, ia akan ditukar kepada nombor perpuluhan dengan saiz yang sepadan; >
Jika parameter ialah rentetan kosong, ia akan ditukar kepada 0; kepada 0;Jika parameter ialah fungsi, objek tatasusunan yang mengandungi lebih daripada dua elemen dan objek lain kecuali objek Tarikh, ia akan ditukar kepada NaN
Jika terdapat simbol khas atau aksara bukan angka selain daripada ruang, dan - di hadapan parameter, atau simbol khas atau aksara bukan angka termasuk ruang, dan - disertakan di tengah aksara parameter, akan ditukar kepada NaN.
Kaedah 3: Gunakan fungsi parseInt()
Parameter stringNum ialah rentetan yang perlu ditukar kepada integer parameter radix ialah nombor antara 2 dan 36, menunjukkan nombor asas parameter stringNum itu boleh ditinggalkan apabila nilainya ialah 10.
Fungsi parseInt() adalah untuk menghuraikan parameter rentetan stringNum dengan radix sebagai asas kepada nombor perpuluhan. Jika rentetan stringNum tidak bermula dengan aksara undang-undang, NaN akan dikembalikan jika aksara haram ditemui semasa proses penghuraian, penghuraian akan berhenti serta-merta dan nilai yang dihuraikan akan dikembalikan.
alert(Number("0010")); //去掉两个前导0,结果为:10 alert(Number("+010")); //去掉前导0和+,结果为:10 alert(Number("-10")); //转换后保留“-”号,结果为:-10 alert(Number('')); //空字符串的转换结果为:0 alert(Number(true)); //布尔值true的转换结果为:1 alert(Number(null)); //null值的转换结果为:0 var d = new Date(); //创建一个Date对象 alert(Number(d)); //转换Date对象,结果为1970.1.1至执行转换时的毫秒数:1511351635179 alert(Number("100px")); //参数中包含了不能转换为数字的字符px,结果为:NaN alert(Number("100 01")); //参数中包含了空格,导致整个参数不能转换,结果为:NaN alert(Number("100-123")); //参数中包含了“-”,导致整个参数不能转换,结果为:NaN var a; //声明变量 alert(Number(a)); //变量a没有赋值,因而a的值为undefined,转换undefined的结果为:NaN var fn = function (){alert(1);}; //创建一个函数对象 alert(Number(fn)); //转换函数,结果为:NaN alert(Number(window)); //转换window对象,结果为:NaNparseInt() mengikut peraturan berikut semasa menghuraikan rentetan sebagai integer:
Apabila menghuraikan rentetan, ruang sebelum dan selepas rentetan akan diabaikan; -, - akan dikekalkan dalam hasil penukaran; jika nombor didahului dengan, tanda akan dipadamkan selepas penukaran; dan - atau Untuk aksara bukan angka selain daripada a~f (atau A~F), rentetan tidak akan dihuraikan dan hasil yang dikembalikan ialah NaN
mengandungi ruang, , - dan titik perpuluhan "." dan simbol khas lain atau aksara bukan angka, penghuraian akan berhenti apabila aksara ini ditemui dan mengembalikan hasil yang dihuraikan; , hasil pulangan ialah NaN.parseInt(stringNum,[radix])
Contoh penukaran:
Daripada contoh di atas kita dapat lihat bahawa apabila parseInt() menghuraikan nombor titik terapung, bahagian perpuluhan data akan dipotong . Anda perlu menggunakan parseFloat(), yang akan diperkenalkan di bawah, tetapi bukan parseInt().parseFloat() 的作用是将首位为数字的字符串转解析成浮点型数。若 stringNum 字符串不是以合法的字符开头,则返回 NaN;解析过程中如果遇到不合法的字符,将马上停止解析,并返回已经解析的值。
parseFloat() 在解析字符串为整数时,遵循以下规则:
解析字符串时,会忽略字符串前后的空格;如果字符串前面为-,-会保留在转换结果中;如果数字前面为+,转换后将删掉+号;如果字符串前面为小数点.转换结果会在小数点前面添加 0;
如果字符串前面为除空格、+、-和。以外的特殊符号,字符串将不会被解析,返回结果为 NaN;
在字符串中包含了空格、+和-等特殊符号或非数字的字符时,解析将在遇到这些字符时停止,并返回已解析的结果;
在字符串中包含两个以上为小数点时,解析到第二个小数点时将停止解析,并返回已解析的结果;
如果字符串是空字符串,返回结果为 NaN。
转换示例:
alert(parseFloat("312.456"));//结果为:312.456 alert(parseFloat("-3.12"));//字符串前面的“-”将保留,结果为:-3.12 alert(parseFloat("+3.12"));//字符串前面的“-”将保留,结果为:3.12 alert(parseFloat(".12"));//在小数点前面添加0,结果为:0.12 alert(parseFloat(" 3.12"));//截掉字符串前面的空格,结果为:3.12 alert(parseFloat("312.4A56"));//字符串中包含非数字字符A,解析到A时停止,结果为:312.4 alert(parseFloat("31 2.4A56"));//字符串中包含空格,解析到空格时停止,结果为:31 alert(parseFloat("31.2.5"));//字符串中包含两个小数点,解析到第二个小数点时停止,结果为:31.2 alert(parseFloat("a312.456"));//字符串前面为非数字字符a,解析无法进行,结果为:NaN
【推荐学习:javascript高级教程】
Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan kepada nombor dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!