2014-03-31 94 views
2

我有一個像陣列值需要文本

text=['2','2<sup>2</sup>','3<sup>10</sup>'.......]; 

一個陣列我想造成這樣的

text=['2','22','310'......]; 

我怎樣才能得到這個使用JavaScript

var optionTxt = (xmlDoc.getElementsByTagName('Option')[i].textContent ? xmlDoc.getElementsByTagName('Option')[i].textContent : xmlDoc.getElementsByTagName('Option')[i].text); 
     optionList[i] = $.trim(optionTxt); 
+1

你有沒有考慮使用基於正則表達式替換? –

回答

3

可以使用.map的操作,並使用.replace()來代替任何非數字:

text.map(function(item) { 
    return item.replace(/\D/g, ''); 
}); 

由於您使用jQuery的你也可以用自己的.map,而不是從交叉(舊)瀏覽器的兼容性充分受益:

$.map(text, function(item) { 
    return item.replace(/\D/g, ''); 
}); 
1

使用.map().replace()。試試這個:

var text=['2','2<sup>2</sup>','3<sup>10</sup>']; 
text = $.map(text,function(i){ 
    return i.replace(/[^\d.]/g,''); 
}); 
console.log(text); 

DEMO

0

嘗試jQuery的HTML解析:

var text = ['2', '2<sup>2</sup>', '3<sup>10</sup>']; 
var out = []; 
jQuery.each(text, function (si, str) { 
    var concat = ''; 
    jQuery.each(jQuery.parseHTML(str), function (ei, el) { 
     concat = concat + el.textContent; 
    }); 
    out.push(concat); 
}); 

檢查出這個小提琴:http://jsfiddle.net/9cV7M/