如何:从字符串中剥离无效字符 - .NET

跳转至主内容

此浏览器不再受支持。

请升级到 Microsoft Edge 以使用最新的功能、安全更新和技术支持。

Learn
登录

如何:从字符串中剥离无效字符

  • 项目

下面的示例使用静态 Regex.Replace 方法,从字符串中剥离无效字符。

示例

可以使用此示例中定义的 CleanInput 方法来剥离在接受用户输入的文本字段中输入的可能有害的字符。 在此情况下,CleanInput 会剥离所有非字母数字字符(句点 (.)、at 符号 (@) 和连字符 (-) 除外),并返回剩余字符串。 但是,可以修改正则表达式模式,使其剥离不应包含在输入字符串内的所有字符。

using System;
using System.Text.RegularExpressions;

public class Example
{
    static string CleanInput(string strIn)
    {
        // Replace invalid characters with empty strings.
        try {
           return Regex.Replace(strIn, @"[^\w\.@-]", "",
                                RegexOptions.None, TimeSpan.FromSeconds(1.5));
        }
        // If we timeout when replacing invalid characters,
        // we should return Empty.
        catch (RegexMatchTimeoutException) {
           return String.Empty;
        }
    }
}
Imports System.Text.RegularExpressions

Module Example
    Function CleanInput(strIn As String) As String
        ' Replace invalid characters with empty strings.
        Try
            Return Regex.Replace(strIn, "[^\w\.@-]", "")
            ' If we timeout when replacing invalid characters, 
            ' we should return String.Empty.
        Catch e As RegexMatchTimeoutException
            Return String.Empty
        End Try
    End Function
End Module

正则表达式模式 [^\w\.@-] 与非单词字符、句点、@ 符号或连字符的任何字符相匹配。 单词字符可以是任何字母、十进制数字或标点连接符(如下划线符号)。 与此模式匹配的任何字符被替换为 String.Empty(即替换模式定义的字符串)。 若要允许用户输入中出现其他字符,请将该字符添加到正则表达式模式中的字符类。 例如,正则表达式模式 [^\w\.@-\\%] 还允许输入字符串中包含百分号和反斜杠。

请参阅

可以在 GitHub 上找到此内容的源,还可以在其中创建和查看问题和拉取请求。 有关详细信息,请参阅参与者指南

反馈

其他资源


文档