37 Stimmen

Regulärer Ausdruck für Twitter-Benutzernamen

Ich brauche einen JavaScript-Regulären Ausdruck, um Twitter-Benutzernamen abzugleichen.

Der Benutzername wird vom Benutzer bei der Anmeldung eingegeben, daher möchte ich sie nicht mit zu vielen Fehlermeldungen ablenken. Deshalb muss der Ausdruck gültige Benutzernamen abgleichen, unabhhängig davon, ob sie das @ vor dem Benutzernamen haben oder nicht.

Twitter-Benutzernamen können lateinische Zeichen, Unterstriche und Zahlen enthalten, und die einzige Einschränkung ist, dass sie bis zu 15 Zeichen lang sein können. (Aber ich brauche den Regex auch, um 16 Zeichen abzugleichen, falls jemand das @ vor dem Benutzernamen eingibt).

2voto

Harold Castillo Punkte 1829

Dies könnte Hilfe für ein Volltreffer sein:

^@(?=.*\w)[\w]{1,15}$

Testen: @John_Doe2000

Ergebnisse:

Treffer 1
Volltreffer 0-13    @John_Doe2000

Versuchen Sie es hier

1voto

Osman Turan Punkte 1321

Um "nicht-lateinische" Zeichen auszuschließen, musst du folgendes verwenden: ^@?([a-zA-Z0-9_]){1,15}$. Denn \w akzeptiert "alle Wortzeichen". Und nicht-lateinische Zeichen erfüllen diese Bedingung. Daher entspricht es auch üö wie türkische Zeichen.

1voto

Um @asenovm Antwort zu erweitern, dies wird Twitter-Handles auswählen, die nicht alleine in Zeichenfolgen sind, und wird auch den Doppelpunkt auswählen, der in einem Retweet vorhanden ist:

@(\w){1,15}(:|)

0voto

Will Schoenberger Punkte 888

Es könnte mehr sein als du brauchst, aber ich habe das in einem anderen Beitrag gefunden "regex how to replace twitter links". Verpackt @Benutzernamen, #Hashtags und URLs. Funktioniert gut für mich.

function processTweetLinks(text) {
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi;
    text = text.replace(exp, "$1");
    exp = /(^|\s)#(\w+)/g;
    text = text.replace(exp, "$1#$2");
    exp = /(^|\s)@(\w+)/g;
    text = text.replace(exp, "$1@$2");
    return text;
}

0voto

Ernane Luis Punkte 324

Ich denke, das richtige Regex ist /^@(\w){1,15}/g ohne das ? bei @(at)

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