javascript - 正则表达式只允许某些特殊字符并限制下划线

标签 javascript c# .net regex

如标题所示,我只想允许 -/\(破折号、正斜杠、反斜杠)来自特殊字符。这是下面的正则表达式,但它不匹配下划线。我该怎么做?

JavaScript:/[^\w\-\/\\]/gi

.NET:^[\w-\/\\]*$

最佳答案

您可以在 JS 正则表达式中添加一个替代项:

var pattern = /(?:[^\w\/\\-]|_)/g;
               ^^^          ^^^

参见 regex demo .此模式可用于删除 JS 中不需要的字符。

在 .NET 正则表达式中,您可以使用 character class substraction , 模式可以写成

var pattern = @"[^-\w\/\\-[_]]";

参见 .NET regex demo

要匹配只允许 -/\ + 字母/数字的整个字符串,请使用

var pattern = /^(?:(?!_)[\w\/\\-])*$/;
var pattern = @"^[-\w/\\-[_]]*$";

查看此 JS regex demo.NET regex demo .

在这里,^(?:(?!_)[\w\/\\-])*$/^[-\w/\\-[_]] *$ 匹配整个字符串(^$ anchor 需要完整的字符串匹配),只包含单词,/\- 字符。

注意:在 C# 中,\w 默认情况下比 JS 正则表达式中的 \w 匹配更多。您需要使用 RegexOptions.ECMAScript 选项来使 \w 的行为与在 JS 中的行为相同。

关于javascript - 正则表达式只允许某些特殊字符并限制下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52595874/

相关文章:

javascript - 当通过 2 个组件传递 props 时,我失去了在数组上使用 .map 的能力

c# - 为基于声明的安全性实现自定义属性

.net - 使用 Web.config 将 HTML 解析为 ASP,但当页面中存在 JavaScript 时出现错误

c# - 同时使用 ObjectContext 和 DbContext

C# Interop 使用特定列的数据获取最后一行

c# - 在 Entity Framework 中处理主数据表和相关表

javascript - 如何将现有的 dom 元素绑定(bind)到 backbone collection view

javascript - 如何使用 JavaScript 正则表达式捕获 CSS 多行注释 block

javascript - 从忽略时区的 Unix 时间戳创建日期

c# - 一般使用 asp.net mvc 模型绑定(bind)器