You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET正则表达式需求:允许指定字符并禁止输入http/www网址

嘿,我来帮你搞定这个正则表达式的问题!结合你用ASP.NET 4.5和Bootstrap的场景,咱们直接针对你的需求来调整规则,分两步实现:既要允许指定的字符集,又要把http/www这类内容拦下来。

解决方案

核心要实现两个需求:

  • 仅放行字符集:a-zA-Z0-9_. /,&|()!-
  • 绝对禁止出现http或www字符串

最终正则表达式

这里用负向前瞻来实现“禁止特定子串”的逻辑,同时确保整个输入都符合允许的字符规则,最终正则如下:

^(?!.*(http|www))[a-zA-Z0-9_. /,&|()!-]+$

正则规则拆解

  • ^(?!.*(http|www)):负向前瞻断言,扫描整个字符串,只要发现http或www就直接判定无效
  • [a-zA-Z0-9_. /,&|()!-]+:匹配你允许的所有字符,+表示输入至少要有一个字符(如果允许空输入,把+改成*即可)
  • $:锚定字符串结尾,确保整个输入内容都符合规则,不会出现漏网的非法字符

在ASP.NET 4.5中的应用示例

服务器端验证(用RegularExpressionValidator)

如果是用ASP.NET自带的验证控件,直接把正则配置进去就行,结合Bootstrap的样式也很方便:

<asp:TextBox ID="txtUserInput" runat="server" CssClass="form-control"></asp:TextBox>
<asp:RegularExpressionValidator 
    ID="revUserInput" 
    runat="server" 
    ControlToValidate="txtUserInput"
    ValidationExpression="^(?!.*(http|www))[a-zA-Z0-9_. /,&|()!-]+$"
    ErrorMessage="输入内容不符合要求:仅允许a-zA-Z0-9_. /,&|()!-字符,且不能包含http或www"
    CssClass="text-danger mt-1"
    Display="Dynamic">
</asp:RegularExpressionValidator>

前端Bootstrap验证(结合jQuery Validate)

如果要做前端即时验证,给jQuery Validate加个自定义规则就行:

// 自定义验证方法
$.validator.addMethod('validInputRule', function(value, element) {
    const regex = /^(?!.*(http|www))[a-zA-Z0-9_. /,&|()!-]+$/;
    // 允许空输入的话就保留this.optional(element),否则去掉
    return this.optional(element) || regex.test(value);
}, '输入内容不符合要求:仅允许a-zA-Z0-9_. /,&|()!-字符,且不能包含http或www');

// 绑定到表单
$('#yourFormId').validate({
    rules: {
        txtUserInput: {
            validInputRule: true
        }
    },
    errorClass: 'text-danger'
});

额外提示

  • 如果需要不区分大小写拦截(比如HTTP、WWW也不让过),给正则加上不区分大小写标志i,变成:/^(?!.*(http|www))[a-zA-Z0-9_. /,&|()!-]+$/i
  • 字符集里的-放在末尾是为了避免被当成“范围符号”,如果要调整位置,记得转义成\-

内容的提问来源于stack exchange,提问作者Etienne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:01:28