使用 JavaScript 根据白名单从字符串中删除字符
Use javascript to remove characters from a string based on a whitelist
我似乎找不到答案。 我想要一个通用函数,它允许我从字符串中删除字符白名单中不存在的所有字符。
var validChars = "0123456789%-"
var stringToTest = "The result is -2,003% of the total"
我想要一个可以产生结果的函数:-2,003%
感谢您的任何帮助。广告
"我想要一个通用函数">
好的,像这样:
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
请注意,要使其按照您的预期方式工作,有效字符列表中的连字符需要位于列表中的最后一个 - 您可以添加一些额外的代码来测试并移动它。此外,如果白名单包含对正则表达式具有特殊含义的其他字符(例如,]
(,则必须对其进行转义。我把这些细节留给读者作为练习......
你要找的是正则表达式:
"The result is -2,003% of the total".match(/['d,%'-]+/)[0]; //=> -2,003%
var regexp = new RegExp("[^" + validChars + "]", "g");
console.log(stringToTest.replace(regexp, ""));
当心包含用户输入的validChars
;在这种情况下,应正确转义它。
相关文章:
- 如何将字符串拆分为字符,但在javascript中保留空格
- 如何显示字符串中最多 200 个字符
- 我想在Javascript中探索类似C语言的字符串的整个字符
- 如何用jquery替换字符串中可能变化的字符
- 通过跳过拆分字符在 javascript 中拆分字符串
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 字符串替换-不支持格式字符'}'
- 到UpperCase字符串Javascript中的特定字符索引
- 用类javascript包装span标记中字符串中的字符索引
- 将字符串分组为n个字符的块,并应用替换
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- 如何从键Code;中获取字符串/字符值;
- 检查值是否包含字符串字符
- JavaScript字符串字符操作
- 如果数组中的字符串不匹配,请从字符串中删除字符串字符
- Javascript Lingo游戏-字符串字符等于另一个字符串字符
- jQuery替换字符串字符的方法
- Javascript字符串字符检查
- Javascript替换字符串字符
- Javascript的变化与重复(组合)缺失的字符串字符