Expression régulière ou opérateur
Question
Je suis en train d'écrire une expression régulière pour tester sous forme de chaîne. La chaîne doit commencer ou se terminer par un caractère alphanumérique.
par exemple.
test - OK
test$ - OK
$test - OK
$ - not OK
$test$ - not OK
Je peux tester le début avec ^\w.*$
et la fin avec ^\w.*$
.
Mais je ne peux pas sembler les combiner en quelque chose comme ^.*\w$ | ^\w.*$
.
Est-ce que quelqu'un a des idées ou même un meilleur regex à cet effet?
La solution
Cela devrait fonctionner:
^\w.*|.*\w$
Autres conseils
Ce qui suit devrait fonctionner:
/^\w|\w$/
Bien que \w
comprend _
donc si vous ne souhaitez que des lettres et des chiffres:
/^[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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow