2011-02-14 110 views
49

從字符串中刪除號碼從字符串中刪除數字?

questionText = "1 ding ?" 

我想取代這個數字和題號,數量可以是任意的號碼,我試過下面的代碼那不是工作

questionText.replace(/[0-9]/g, ''); 
+2

什麼是不工作?因爲它是刪除號碼... – 2011-02-14 15:13:41

+0

你還需要刪除小數點嗎? – glowworms 2011-02-14 16:19:45

+1

@Berbi此問題不重複。引用的「替換方法不起作用」沒有正確的標題,因此用戶可以鍵入並搜索「從字符串中刪除數字」。糟糕的適度。 – 2014-12-12 14:54:58

回答

99

非常接近,請嘗試:

questionText = questionText.replace(/[0-9]/g, ''); 

replace對現有字符串不起作用,它會返回一個新字符串。如果你想使用它,你需要保留它!
同樣,你可以使用一個新的變量:

var withNoDigits = questionText.replace(/[0-9]/g, ''); 

最後一招一次刪除的數字整塊,而是一個可能走得太遠:

questionText = questionText.replace(/\d+/g, ''); 
8

你非常接近。

這裏是你的問題寫的代碼:

questionText.replace(/[0-9]/g, ''); 

你寫的確實看questionText變量,併產生輸出是原始字符串,而是用數字與替換爲空的代碼串。

但是,它不會自動將其分配回原始變量。您需要指定什麼將其分配到:

questionText = questionText.replace(/[0-9]/g, ''); 
9

字符串是immutable,這就是爲什麼questionText.replace(/[0-9]/g, '');在它自己的確實工作,但它不會改變questionText串。您必須將替換結果分配給另一個String變量或再次分配給questionText。

var cleanedQuestionText = questionText.replace(/[0-9]/g, ''); 

或1個去(使用\d+,看到了Kobi的答案):

questionText = ("1 ding ?").replace(/\d+/g,''); 

,如果你想在你在它修剪領先(和尾)空間(S):

questionText = ("1 ding ?").replace(/\d+|^\s+|\s+$/g,''); 
1

只是想添加,因爲它可能是有興趣的人,你可以以另一種方式思考問題。我不確定這裏是否有興趣,但我認爲它是相關的。

我的意思的另一種方式是說「剝奪什麼,不就是我尋找的,也就是說,如果你只希望‘丁’,你可以說:

VAR strippedText =(」 1 ding?「)。replace(/ [^ a-zA-Z]/g,'');

基本上意思是」刪除任何一個是a,b,c,d .... Z信)。