2013-03-31 78 views
0

這可能很簡單,但我很難用它。請看下面的代碼:JavaScript只返回字符串中的正則表達式

var string = 'testingT#$^%#$ESTING__--232' 
string = string.match(/^\w*$/) 
if (string != null) 
{ 
    string = string.join('') 
    string = string.toUpperCase() 
} 
$('#my-input').val(string) 

我想要做的,是剝離不屬於字母數字的所有字符或string強調,然後轉換該字符串爲大寫。

到目前爲止,我這樣做,它完美的作品,如果我不添加任何特殊字符,但是當我添加-^它,例如,它刪除一切從#my-input

回答

3

你可以做到這一點一步:

string = string.replace(/[^\w]/g, '').toUpperCase(); 
console.log(string); //=> "TESTINGTESTING__232" 
+0

這很好,謝謝。 – Pacha

1
var string = string.replace(/[^a-zA-Z_0-9]/g,'').toUpperCase() 

另外,你需要的Unicode?我的正則表達式只會匹配a-z,而不是åøø。

1

您需要在正則表達式中使用「全局」標誌並移除匹配限制。

var str = 'testingT#$^%#$ESTING__--232'; 
str = str.match(/\w+/g);  
if (str !== null) 
{ 
    str = str.join(''); 
    str = str.toUpperCase(); 
} 
$('#my-input').val(str); 
相關問題