Регулярное выражение или оператор
Я пытаюсь написать регулярное выражение для проверки в виде строки. Строка должна начинаться или заканчиваться буквенно-цифровым символом.
например.
test - OK
test$ - OK
$test - OK
$ - not OK
$test$ - not OK
Я могу проверить начало с ^\w.*$
и конец с ^\w.*$
,
Но я не могу объединить их в нечто вроде ^.*\w$ | ^\w.*$
,
У кого-нибудь есть какие-нибудь идеи или даже лучшее регулярное выражение для этой цели?
2 ответа
Решение
Следующее должно работать:
/^\w|\w$/
Хотя \w
включает в себя _
так что если вам нужны только буквы и цифры:
/^[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