785 Stimmen

Wie entferne ich alle nicht alphanumerischen Zeichen außer dem Bindestrich aus einer Zeichenfolge?

Wie entferne ich alle nicht alphanumerischen Zeichen mit Ausnahme von Bindestrich und Leerzeichen aus einer Zeichenfolge?

0voto

Philip Johnson Punkte 1005

Ich verwende hier eine Variante einer der Antworten. Ich möchte Leerzeichen durch "-" ersetzen, damit es SEO-freundlich ist, und auch Kleinbuchstaben machen. Auch nicht Referenz system.web von meiner Dienste-Schicht.

private string MakeUrlString(string input)
{
    var array = input.ToCharArray();

    array = Array.FindAll<char>(array, c => char.IsLetterOrDigit(c) || char.IsWhiteSpace(c) || c == '-');

    var newString = new string(array).Replace(" ", "-").ToLower();
    return newString;
}

0voto

GeekyMonkey Punkte 11711

Wenn Sie mit JS arbeiten, finden Sie hier eine sehr knappe Version

myString = myString.replace(/[^A-Za-z0-9 -]/g, "");

6 Stimmen

Ich glaube, OP könnte über C#, nicht JS gefragt haben.

-1voto

Syv Development Punkte 63

Es gibt einen viel einfacheren Weg mit Regex.

private string FixString(string str)
{
    return string.IsNullOrEmpty(str) ? str : Regex.Replace(str, "[\\D]", "");
}

2 Stimmen

Ersetzt nur nicht numerische Zeichen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X