正则表达式排除[0-9]和字符串'任何'

时间:2018-01-22 06:34:32

标签: javascript regex

我正在尝试制作一个应该排除所有数字和字符串'any'的正则表达式。我尝试了/any|[0-9]/mig。这包括。因为我是正则表达式的新手,我不知道排除的正确方法。

3 个答案:

答案 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

Demo

上述正则表达式的javascript兼容解决方案是:

[^n]y|[^a]ny|a(?!ny)|an(?!y)|[^a]n(?=y)|n(?!y)|[^any\d]

Javascript version Demo

&#13;
&#13;
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;
&#13;
&#13;