javascriptを利用して、文字列の中に数値が入っているかどうかをチェックする方法の備忘録となります
今回は下記の方法をご紹介します
\自身のスキルを向上するには技術書で!!/
月額¥980で技術書が読み放題!!
- ビジネススキルとマインド向上したい!!
- 決断や行動を先送りにしてしまう方!!
Regex.test()を利用する
javascriptでは文字列に対して正規表現を利用して特定の文字が含まれているかどうかをチェックする方法があります
その中で、test()は正規表現のパターンから呼び出し、引数にチェックする文字列を指定します。
function containsNumbers(str) {
return /\d/.test(str);
}
console.log(containsNumbers('hello123')); // true
console.log(containsNumbers('javascript')); // false
console.log(containsNumbers('1 tickets')); // true
上記は、「\d」という正規表現では「数値」を表します。
文字列に数値が含まれているかどうかをチェックする場合は上記のように表現します。
もし、数値のみをチェックする場合は下記のようにすると良いでしょう
function containsOnlyNumbers(str) {
return /^\d+$/.test(str);
}
console.log(containsOnlyNumbers('hello123')); // false
console.log(containsOnlyNumbers('458')); // true
console.log(containsOnlyNumbers('1 tickets')); // false
上記の場合は、数値のみかどうかをチェックします。
もし数値以外が含まれている場合は「false」となります。
「\d」の代わりに「[0-9]」を利用するのも良いでしょう。
string.match()を利用する
matchもtestメソッドと同様に、文字列の中に特定の文字が含まれているかどうかチェックするためのメソッドです。
文字列を扱うStringオブジェクトで標準に用意されているメソッドとなります。
function containsNumbers(str) {
return Boolean(str.match(/\d/));
}
console.log(containsNumbers('hello123')); // true
console.log(containsNumbers('javascript')); // false
console.log(containsNumbers('1 tickets')); // true
最後に
もちろん、数値が含まれているということではなく、特定の文字列を利用する場合に上記方法を利用しますが、今回は数値が含まれているかどうかという観点で、投稿しました。
ぜひ、参考にしてみてください。