したいこと
入力された値がすべて半角数字であることを、
正規表現を使って確認したい。
結論
数値である入力値を一度文字列に変換し、match()で比較する。
以下は失敗例と成功例
使用する値
半角数字のみであることを確認する正規表現:/^\d+$/
(行頭から行末まで半角数字のみであるということ)
1. 失敗1 正規表現はイコールでの比較ができない。
.javascript
// 比較する関数(入力値が半角数字である場合1, それ以外の場合は0を返す)
function sample(value){
if(value == /^\d+$/){return 1}else{return 0}
}
// `1234`を入力してチェック
sample(1234)
入力値は半角数字のみだが、返ってくる値は0。
一致しているとみなされていない。
2. 失敗2 数値はmatch()で比較することができない
.javascript
// 比較する関数(入力値が半角数字である場合1, それ以外の場合は0を返す)
function sample(value){
if(value.match(/^\d+$/)){return 1}else{return 0}
}
// `1234`を入力してチェック
sample(1234)
Uncaught TypeError: value.match is not a function
というエラーが発生。
※今回の入力値は数値なのでエラーが出たが、入力値が文字列の場合はこの書き方でOK。
3. 成功 数値は文字列に変換してからmatchで比較する
.javascript
// 比較する関数(入力値が半角数字である場合1, それ以外の場合は0を返す)
function sample(value){
if(String(value).match(/^\d+$/)){return 1}else{return 0}
}
// `1234`を入力してチェック
sample(1234)
返ってくる値は1。比較ができた。