Regulärer Ausdruck oder Betreiber
Frage
Ich versuche, einen regulären Ausdruck Test als String zu schreiben. Die Zeichenfolge muss mit einem alphanumerischen Zeichen beginnen oder enden.
zB.
test - OK
test$ - OK
$test - OK
$ - not OK
$test$ - not OK
kann ich den Anfang mit ^\w.*$
testen und am Ende mit ^\w.*$
.
Aber ich kann nicht scheinen, sie in so etwas wie ^.*\w$ | ^\w.*$
zu kombinieren.
Hat jemand irgendwelche Ideen haben oder sogar eine bessere regex für diesen Zweck?
Lösung
Dies sollte funktionieren:
^\w.*|.*\w$
Andere Tipps
In der folgenden sollte funktionieren:
/^\w|\w$/
Obwohl \w
umfasst _
also, wenn Sie nur wollen, Buchstaben und Zahlen:
/^[0-9a-zA-Z]|[0-9a-zA-Z]$/
var tests=['test', 'test$', '$test', '$', '$test$'];
var re = /^\w|\w$/;
for(var i in tests) {
console.log(tests[i]+' - '+(tests[i].match(re)?'OK': 'not OK'));
}
// Results:
test - OK
test$ - OK
$test - OK
$ - not OK
$test$ - not OK
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow