javascriptのhh:mm:ss AM / PMの形式で時間(html入力要素)を検証する方法を教えてもらえますか?
2 に答える
おそらくもっと良い正規表現がありますが、基本的なことをしましょう。
入力を取得し、blurでイベントをアタッチします(これを行う方法は説明しません。「javascriptのdom要素にイベントをアタッチする」などを検索してください)
その中であなたもこのようなことをすることができます:
if(/(?:[0-1]?[0-9]|[2][1-4]):[0-5]?[0-9]:[0-5]?[0-9]\s?(?:am|pm)?/.test(this.value)) {
// Validates
} else {
// Something is wrong
}
時間形式または他の形式をテストするためのより良い正規表現については、「validate time regexjavascript」または同様のものを検索してください(そこにはたくさんあります)。
この特定の正規表現は時間を検証します。必要に応じて、ここでそれを試してみることができます。
http://rubular.com/r/cYs1n3UuKO
rubyとjavascriptの正規表現は少し異なりますが、これと同じくらい単純なものには、簡単にテストできる優れたインターフェイスを持つrubularを使用できます。
最も簡単な方法は、おそらくglobalize.jsを使用することです。これにより、次のテストを簡単に行うことができます。
Globalize.parseDate(data, 'T')
nullでないため、例えばif(Globalize.parseDate(data, 'T')) ...
。この特定のバリアントには、例を示した正確な形式が必要です。amまたはpmの指定子では、大文字と小文字は区別されませんが、秒とam/pmインジケーターが常に含まれています。T
別の解析を指定する代わりに、他の形式を使用できます。
このアプローチのもう1つの利点は、コードのこの部分がグローバリゼーションに対応できることです。ロケールを識別する変数を設定するだけで、さまざまな言語のルールに従ってコードを解析できます(この場合は「長時間」表記の場合)。可能性を説明するいくつかのコードサンプルをチェックしてください。