Javascript Regex只允许某些特殊字符并限制下划线
正如标题所示,我只允许特殊字符使用-/\(破折号、正斜杠、反斜杠)。下面这个正则表达式在做什么,但它与下划线不匹配。我怎么做 JavaScript:Javascript Regex只允许某些特殊字符并限制下划线,javascript,c#,.net,regex,Javascript,C#,.net,Regex,正如标题所示,我只允许特殊字符使用-/\(破折号、正斜杠、反斜杠)。下面这个正则表达式在做什么,但它与下划线不匹配。我怎么做 JavaScript:/[^\w\-\/\]/gi .NET:^[\w-\/\\]*$您可以在JS正则表达式中添加一个替代项: var pattern = /(?:[^\w\/\\-]|_)/g; ^^^ ^^^ 看。此模式可用于删除JS中不需要的字符 在.NET正则表达式中,您可以使用,模式可以写成 var patter
/[^\w\-\/\]/gi
.NET:
^[\w-\/\\]*$
您可以在JS正则表达式中添加一个替代项:
var pattern = /(?:[^\w\/\\-]|_)/g;
^^^ ^^^
看。此模式可用于删除JS中不需要的字符
在.NET正则表达式中,您可以使用,模式可以写成
var pattern = @"[^-\w\/\\-[_]]";
见
要匹配只允许-
、/
和\
+字母/数字的整个字符串,请使用
var pattern = /^(?:(?!_)[\w\/\\-])*$/;
var pattern = @"^[-\w/\\-[_]]*$";
看看这个和这个
在这里,^((?!\)[\w\/\-])*$
/^[-\w/\\-[\u]]*$
匹配一个只包含单词、/
、\
字符的整个字符串(^
和$
锚需要完整的字符串匹配)
注意:在C#中,
\w
默认情况下与JS regex中的\w
匹配得多。您需要使用RegexOptions.ECMAScript
选项使\w
的行为与JS中的行为相同。如果只允许短划线、正斜杠和反斜杠,则可以省略^
。它的意思是一个
您还可以使用\w
匹配、下划线和添加连字符作为字符类中的第一个字符
/[-\w/\\]/g
要匹配整个字符串,可以使用字符类的量词+
匹配一次或多次,并开始^
和结束$
:
^[-\w/\\]+$
const regex=/^[-\w/\\]+$/g;
常量字符串=[
“test2\/\”,
“test2$\/\”
];
strings.forEach((str)=>{
console.log(str.match(regex));
});代码>我对你的目标和代码有点困惑。那么,这是什么
模式-/[\\/-]/g
“我只想允许-/\”。但是您要将它们包括在否定类中吗?请注意,/[^\w\-\/\\]/gi
不匹配,因为[^\w]
不匹配<代码>^[\w-\/\\]*$
不匹配。所以,请在最后再解释一下您需要什么。@psy您是在试图防止SQL注入或偶然出现“坏”密码吗?@TerryCarmen just input.replace onpattern@WiktorStribi我还不太清楚,但你还是搞定了,干得好