获取与JavaScript正则表达式替换的字符替换

问题描述:

我使用获取与JavaScript正则表达式替换的字符替换

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

问题目前更换所有非字母字符的是,我不知道会出现哪些特殊字符(需要删除)。不过,我需要能够访问删除的特殊字符后,我已经运行一些代码与没有特殊字符的单词。

例输入:

"test". 
(temporary) 
foo, 

所需的输出:

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

这怎么可能用JavaScript实现的?

+0

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

编辑:要获取有效和无效字符,请更改正则表达式 快速解决方案是定义一个数组以收集匹配项。 然后在一个函数传递到您的通话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