さて、既存のキャラクタークラスにそれらを追加してみませんか?
var pattern = /[a-zA-Z0-9&._-]/
文字列がそれらの文字だけで構成されているかどうかを確認する必要がある場合は、式もアンカーする必要があります。
var pattern = /^[a-zA-Z0-9&._-]+$/
文字列の最初と最後にそれぞれ追加され^
、$
一致します。
\w
文字、数字、またはアンダースコアのテストは、式を短くすることで実行できます。
var pattern = /^[\w&.-]+$/
Nathanからのコメントで述べたように、からの結果を使用していない場合.match()
(一致したものを含む配列を返す)RegExp.test()
、単純なブール値を返すを使用することをお勧めします。
if (pattern.test(qry)) {
// qry is non-empty and only contains letters, numbers or special characters.
}
アップデート2
質問を読み間違えた場合は、以下の3つの条件がすべて満たされているかどうかを確認します。
if (/[a-zA-Z]/.test(qry) && /[0-9]/.test(qry) && /[&._-]/.test(qry)) {
// qry contains at least one letter, one number and one special character
}