質問

私は文字列としてテストするために正規表現を書き込もうとしています。文字列は、英数字の文字で開始または終了する必要があります。

例えば。

test - OK
test$ - OK
$test - OK
$ - not OK
$test$ - not OK

最初をテストできます ^\w.*$ と終わり ^\w.*$.

しかし、私はそれらをそのようなものに組み合わせることができないようです ^.*\w$ | ^\w.*$.

誰かがこの目的のために何かアイデアやより良いregexさえありますか?

役に立ちましたか?

解決

これは機能するはずです:

^\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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top