我正在尝试制作一个应该排除所有数字和字符串'any'的正则表达式。我尝试了/any|[0-9]/mig
。这包括。因为我是正则表达式的新手,我不知道排除的正确方法。
答案 0 :(得分:3)
您可以使用replace:
function remove(input) {
return input.replace(/any|[0-9]+/ig,'');
}
console.log(remove('testANy2948234 me'));
请注意/any|[0-9]+/ig
匹配“many”中的“any”。这不是你想要的,用/\bany\b|[0-9]+/ig
替换它。 \b
匹配分词。
答案 1 :(得分:2)
您可以使用/\d/
或[0-9]
试试这个
var text="123haiany g Baby";
console.log(text.replace(/any|[\d]/mig, ''));
如果您需要,请查看:Should I use \d or [0-9] to match digits in a Perl regex?
答案 2 :(得分:0)
所以你想要的只是选择除数字或单词之外的任何东西。你没有提到要更换任何类型的东西。所以,如果我必须给你一个纯粹的正则表达式解决方案,那么它可以满足你的标准,但这也需要负面的看法!我认为java脚本仅支持谷歌浏览器。
你可以试试这个:
[^any\d]|a(?!ny)|(?<=a)n(?!y)|(?<!a)n(?=y)|n(?!y)|(?<!an)y
上述正则表达式的javascript兼容解决方案是:
[^n]y|[^a]ny|a(?!ny)|an(?!y)|[^a]n(?=y)|n(?!y)|[^any\d]
const regex = /[^n]y|[^a]ny|a(?!ny)|an(?!y)|[^a]n(?=y)|n(?!y)|[^any\d]/g;
const str = `I successfully mande a regex to include it is any 0-9 but don't know the way to exclude. any zny znk anz ny any n a n y y ny ay zy any`;
let m;
var result="";
while((m = regex.exec(str)) !== null) {
result+=m[0];
}
console.log(result);
&#13;