2012-02-20 24 views
0

一些外部的代碼是給我一個字符串值,如..任何javascript字符串函數?

null,402,2912,2909,2910,2913,2911,2914,2915,2388,2389,2390, 

現在我有這個值保存到數據庫中,但把0代替null在JavaScript。有沒有任何JavaScript字符串相關功能來做這種轉換?

回答

0

您可以簡單地使用replace功能一遍又一遍,直到所有的情況下被替換,但請確保您所有的字符串都不會包含的字符序列null或數字(和明顯分隔逗號):

var str = "null,402,2912,null" 
var index = str.indexOf("null"); 

while(index != -1) { 
    str = str.replace("null", "0"); 
    index = str.indexOf("null"); 
} 

您需要運行for循環,因爲功能String.replace(search, rplc)將僅替換第一個searchrplc的實例。因此,我們使用indexOf方法在每次迭代中檢查所需術語是否存在。另一種選擇(在我看來,一個更好的替代方法是:

var str = "null,402,2912,null" 
var parts = str.split(","); 
var data = [] 

for(var i=0; i<parts.length; i++) { 
    data[data.length] = parts[i]=="null"?0:parseInt(parts[i]); 
} 

基本上,我們正在做的是,因爲你反正被這個轉換爲數字陣列(我想,和排序的希望) ,我們首先把它分解成單個的元素,然後檢查每個元素,看看它是否是null並做出相應的轉換

0

這應該回答您的需求。

var str = 'null,402,2912,2909,2910,2913,2911,2914,2915,2388,2389,2390'; 
str.split(",").map(function (n) { var num = Number(n); return isNaN(num) ? 0 : num; }); 
0

最簡單的解決方法是:

var inputString = new String("null,402,2912,2909,2910,2913,2911,2914,2915,2388,2389,2390,"); 
var outputString = inputString.replace("null", "0"); 
0

我從你的問題理解的是:

你想在一個字符串0替換爲空。

您可以使用

string = "null,402,2912,2909,2910,2913,2911,2914,2915,2388,2389,2390," 
string.replace(/null/g,0) 

希望它能幫助。