はじめに

JavaScript で 16進数の固定長文字列を判定する方法を調べた。

TL;DR

目次

  1. はじめに
  2. TL;DR
  3. 環境・条件
  4. 詳細
    1. 16進数 64文字 のチェック
    2. 例: 16進数 3文字 のチェック
  5. まとめ
  6. 参考文献

環境・条件

1
2
3
4
5
6
7
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.1
BuildVersion: 19B88

$ node -v
v12.7.0

詳細

16進数 64文字 のチェック

参考ページ(Stack Overflow) のままで OK

16進数 64文字かどうかをチェックする場合は下記。

1
2
3
const target = '012..';  // 64文字は長いので略
/^[0-9a-f]{64}$/i.test(target);
// => true or false
  • ^: 先頭が [0-9a-f] (先頭に他の文字は NG)
  • [0-9a-f]: 0123456789abcdef のどれか
  • {64}: [0-9a-f] × 64文字
  • $: 末尾に他の文字は NG
  • i: 大文字/小文字 の区別はなし

例: 16進数 3文字 のチェック

64文字だと長いので 16進数 3文字かどうかをチェックしてみる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/^[0-9a-f]{3}$/i.test('000')
// => true

/^[0-9a-f]{3}$/i.test('0af')
// => true

/^[0-9a-f]{3}$/i.test('0aD')
// => true

/^[0-9a-f]{3}$/i.test('0aDe')
// => false

/^[0-9a-f]{3}$/i.test('0a')
// => false

/^[0-9a-f]{3}$/i.test('0aG')
// => false

/^[0-9a-f]{3}$/i.test(' 0af ')
// => false

まとめ

参考文献

関連記事