2017-10-09 195 views
0

我使用獲取與JavaScript正則表達式替換的字符替換

var stringwithoutspecialCharacter = "testwordwithpunctiuation.".replace(/[^\w\s!?]/g, ''); 

問題目前更換所有非字母字符的是,我不知道會出現哪些特殊字符(需要刪除)。不過,我需要能夠訪問刪除的特殊字符後,我已經運行一些代碼與沒有特殊字符的單詞。

例輸入:

"test". 
(temporary) 
foo, 

所需的輸出:

['"','test','"',"."] 
['(','temporary',')'] 
['foo',','] 

這怎麼可能用JavaScript實現的?

+0

您可以添加需要看到一些例子輸入和相應的輸出? – KevBot

回答

0

編輯:要獲取有效和無效字符,請更改正則表達式 快速解決方案是定義一個數組以收集匹配項。 然後在一個函數傳遞到您的通話replace()

var matches = []; 
var matcher = function(match, offset, string) { 
    matches.push(match); 
    return ''; 
} 
var stringwithoutspecialCharacter = "testwordwithpunctiuation.".replace(/[^\w\s!?]|[\w\s!?]+/g, matcher); 
console.log("Matches: " + matches); 
+0

你回答我的問題非常好,考慮到我沒有準確解釋我需要什麼。這適用於我輸入的場景。如果你願意看看我最近連接的輸入/輸出,你是否有機會知道如何實現這一點? – telv

+0

@telv我已經更新了答案。爲了解決你的新問題,我更新了正則表達式,以便還可以將一個或多個有效字符作爲一個單獨的組 – thekenobe