我正在尝试编写一个正则表达式来测试为字符串。字符串必须以字母数字字符开头或结尾。
例如。
test - OK
test$ - OK
$test - OK
$ - not OK
$test$ - not OK
我可以测试开头^\w.*$
和结尾^\w.*$
。
但我似乎无法将它们组合成类似^.*\w$ | ^\w.*$
.
有没有人为此目的有任何想法甚至更好的正则表达式?
以下应该有效:
/^\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
这应该有效:
^\w.*|.*\w$