我想提取這個字符串的數字:「ax(341); ay(20); az(3131);」解析字符串查找字符
我認爲我可以做到這一點如何:
var ax = data.split('(');
var ax2 = ax[1].split(')');
AX2 [0]有「341」
現在,如果我可以重複這一點,但在接下來的indexOf開始服用第二個數字。
我認爲這是一個不好的做法,所以我問你如果你有一個更好的主意。
在此先感謝
我想提取這個字符串的數字:「ax(341); ay(20); az(3131);」解析字符串查找字符
我認爲我可以做到這一點如何:
var ax = data.split('(');
var ax2 = ax[1].split(')');
AX2 [0]有「341」
現在,如果我可以重複這一點,但在接下來的indexOf開始服用第二個數字。
我認爲這是一個不好的做法,所以我問你如果你有一個更好的主意。
在此先感謝
您可以使用正則表達式從此提取所有數字。
var data = "ax(341);ay(20);az(3131);";
var ax = data.match(/\d+/g);
這裏ax
現在["341", "20", "3131"]
注意ax
包含數字的字符串。將它們轉換爲數字,使用以下
ax2 = ax.map(function(x){ return parseInt(x); })
編輯:您也可以使用Number
的功能在上面的行映射。它會看起來像,
ax2 = ax.map(Number)
這ax2
後包含原始字符串的所有整數。
你可以只說'AX2 = ax.map(parseInt函數)' – Mritunjay 2014-08-29 10:26:18
不可以。它給出了一些奇怪的結果。試用。對我來說,它給了[341,NaN,NaN]。看到[這](http://stackoverflow.com/questions/262427/javascript-arraymap-and-parseint) – nisargjhaveri 2014-08-29 10:27:25
這將給出一個錯誤,因爲'parseInt'使用第二個參數作爲基數。最好使用'Number':'ax2 = ax.map(Number)' – Andy 2014-08-29 10:27:26
你可以使用正則表達式,如:
var string = 'ax(341);ay(20);az(3131);';
var pattern = /([0-9]{1,})/g;
var result = string.match(pattern);
console.log(result);
// ["341", "20", "3131"]
使用正則表達式在這裏看到http://stackoverflow.com/questions/13807207/regex-find-a-number-between-parentheses – Mritunjay 2014-08-29 10:23:49