2011-05-26 148 views
1

我有串看起来像这样:如何解析Javascript中的字符串?

01 
02 
03 
99 

我想分析这些,使它们成字符串,如:

1. 2. 3. 99. etc. 

的数字是最多2个字符。此外,我必须在源字符串中解析更多数字,所以我想要了解JavaScript中的子字符串。有人可以给我建议,我怎么做。以前我一直用下面做它在C#:

int.Parse(RowKey.Substring(0, 2)).ToString() + "." 

感谢

回答

1

当然为什么,parseInt

// Add 2 until end of string 
var originalA = "01020399"; 
for (var i = 0; i < originalA.length; i += 2) 
{ 
    document.write(parseInt(originalA.substr(i, 2), 10) + ". "); 
} 

// Split on carriage returns 
var originalB = "01\n02\n03\n99"; 
var strArrayB = originalB.split("\n"); 
for (var i = 0; i < strArrayB.length; i++) 
{ 
    document.write(parseInt(strArrayB[i], 10) + ". "); 
} 

// Replace the leading zero with regular expressions 
var originalC = "01\n02\n03\n99"; 
var strArrayC = originalC.split("\n"); 
var regExpC = /^0/; 
for (var i = 0; i < strArrayC.length; i++) 
{ 
    document.write(strArrayC[i].replace(regExpC, "") + ". "); 
} 

的其他注意事项是JavaScript是弱类型,所以"a" + 1回报"a1"。此外,对于子字符串,您可以在和substr(start, length)之间选择。如果你只是想拉一个字符,"abcdefg"[2]将返回"c"(从零开始的索引,所以2表示第三个字符)。当谈到简单的数字或字母时,您通常不必担心类型转换。

http://jsfiddle.net/mbwt4/3/

+0

但我需要一个字符串,因为我将添加“。”字符。我怎样才能将上述内容转换为字符串? – TonyG 2011-05-26 17:19:06

+0

JavaScript是弱类型,所以你可以用'+'的字符串和数字相结合。如果你有不舒服,替代'parseInt函数(test.substr(1,2))的toString()'以上。 – brymck 2011-05-26 17:21:18

+0

感谢布赖恩。我没有意识到这是每周打字。很棒。我会接受。 – TonyG 2011-05-26 17:25:50

1

使用parseInt功能。

parseInt函数(09)//这会给你9

var myString = parseInt("09").toString()+". "+parseInt("08").toString(); 
+0

后来我将需要得到我的字符串中的第4和第5个字符的值,并执行相同的操作。在JavaScript中是否存在子字符串类型的函数? – TonyG 2011-05-26 17:17:26

+0

@TonyG - 是的,有一个[substring](http://www.w3schools。com/jsref/jsref_substring.asp)在JavaScript中。 – niksvp 2011-05-26 17:21:44

+0

谢谢你,但我收到此错误信息:函数的toString(){[本地代码]} – TonyG 2011-05-26 17:23:13

0
var number = parseFloat('0099'); 
+0

将这个给我的东西看起来像“99”从输入? – TonyG 2011-05-26 17:17:47

+0

尝试:'var number = parseFloat('0099');' – NAVEED 2011-05-26 17:19:02

+0

看看编辑的答案和演示 – NAVEED 2011-05-26 17:22:00

0
string = '01\n02\n03\n99'; 
array = string.split('\n'); 
string2 = ''; 
for (i = 0; i < array.length; i++) { 
    array[i] = parseInt(array[i]); 
    string2 += array[i] + '. '; 
} 
document.write(string2); 
0

子串在JavaScript是这样工作的:

string.substring(from, to); 

其中from是包容性和to是排他的。你也可以用切片:

string.slice(from, to) 

其中from是包容性和to是排他的。切片和子字符串之间的区别是切片,您可以指定负数。例如,from = -1表示最后一个字符。 from(-1, -3)会给你字符串的最后2个字符。

使用这两种方法,如果你没有指定结束,那么你会得到所有的字符到最后。

保罗

0

í他们总是2位数如何;

var s = "01020399"; 
var result = [] 
for (var i = 0; i < s.length; i+=2) 
    result.push(parseInt(s.substr(i, 2), 10) + ".") 

alert(result[2])  // 3. 
alert(result.join(" ")) // 1. 2. 3. 99.