Javascript Regex只允许某些特殊字符并限制下划线

Javascript Regex只允许某些特殊字符并限制下划线,javascript,c#,.net,regex,Javascript,C#,.net,Regex,正如标题所示,我只允许特殊字符使用-/\(破折号、正斜杠、反斜杠)。下面这个正则表达式在做什么,但它与下划线不匹配。我怎么做 JavaScript:/[^\w\-\/\]/gi .NET:^[\w-\/\\]*$您可以在JS正则表达式中添加一个替代项: var pattern = /(?:[^\w\/\\-]|_)/g; ^^^ ^^^ 看。此模式可用于删除JS中不需要的字符 在.NET正则表达式中,您可以使用,模式可以写成 var patter

正如标题所示,我只允许特殊字符使用-/\(破折号、正斜杠、反斜杠)。下面这个正则表达式在做什么,但它与下划线不匹配。我怎么做

JavaScript:
/[^\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我还不太清楚,但你还是搞定了,干得好