javascript - 使用javascript根据白名单从字符串中删除字符

标签 javascript regex whitelist

我似乎找不到这个问题的答案。我想要一个通用函数,它允许我从字符串中删除字符白名单中不存在的所有字符。

var validChars = "0123456789%-"
var stringToTest = "The result is -2,003% of the total"

我想要一个会产生结果的函数:-2,003%

感谢您的帮助。 广告

最佳答案

"I would like a generic function"

好的,像这样:

function removeChars(validChars, inputString) {
    var regex = new RegExp('[^' + validChars + ']', 'g');
    return inputString.replace(regex, '');
}

var newString = removeChars('01234567890%-', "The result is -2,003% of the total");

new RegExp() 部分创建(针对您的特定输入)这样的正则表达式:

/[^01234567890%-]/g

请注意,要使其按照您希望的方式工作,有效字符列表中的连字符需要位于列表的最后 - 您可以添加一些额外的代码来对此进行测试并移动它。此外,如果白名单包含对正则表达式具有特殊含义的其他字符(例如,]),您必须对它们进行转义。我把这些细节作为练习留给读者......

关于javascript - 使用javascript根据白名单从字符串中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17054682/

相关文章:

java - 用 Map 中的 RegEx 键替换所有出现的字符串

ios - Callkit 可以阻止除白名单联系人之外的所有调用吗?

javascript - Angular 1.5 预期数组但收到 : 0 when using filter

javascript - 在 Bootstrap Vue 中动态更改选择输入

javascript - 我试图在 REACT 中加密密码,以便每个字母都将打印为星号 ` * `

java - 如何将我们使用 springboot 的 Rest API 应用程序中的域或 IP 地址列入白名单?

email - 将网站电子邮件列入白名单,使其不会被视为垃圾邮件

javascript - 为什么 trim 子字符串和非捕获不起作用?

JavaScript 正则表达式语法困惑

ruby - 我可以使用什么正则表达式从 Ruby 中的 url 获取域名?