普段仕事でPHPやJavaScript(以下 Js)、CSSを使用しています。
仕事していて、時々文字列操作等でよく使う機会がある関数を備忘録として残そうと思います
文字列数値化
数値化
文字列を数値
ifの判定や計算処理など、正確にするため、文字列を数値に変換など行うことをします
PHP
intval (整数型に変換する文字列 (, 基数(省略可)));
文字列を数値化する関数です。第二引数で何進数の文字列にするか選択することも可能(デフォルトは10進数)
// 文字列(string)型を数値を変数に格納
$val = '300';
// 10進数で変換
var_dump(intval($val));
// 2進数で変換
var_dump(intval($val, 2));
// 8進数で変換
var_dump(intval($val, 8));
// 16進数で変換
var_dump(intval($val, 16));
JS
文字列から整数値
parseInt(整数型に変換する文字列 (, 基数(省略可))
文字列を数値化(整数値)する関数です。第二引数で何進数の文字列にするか選択することも可能。(デフォルトは10進数)
こちらを使用する場合小数点は省略されます
parseInt('123', 10); // 123(10進数の整数)
parseInt('ff', 16); // 255(16進数の整数)
parseInt('2.8', 10); // 2(小数点以下を切り捨てる)
parseInt('123a', 10); // 123(数字以外は無視)
文字列から小数値
parseFloat(変換する文字列)
文字列を数値化(小数点を含む数値)する関数です。
parseFloat('2.8'); // 2.8(実数)
parseFloat('123a'); // 123(数字以外は無視)
特定の文字列を含むかのチェック
文字列が探す方法とmatchなどの正規表現を使う方法があるが、ただ特定の文字列が含まれているかを調べる際、処理速度が違ってくる場合がある。
簡単な処理であれば、速く結果がでるほうがいいです
正規表現使う方法を使わない方法を記載します
PHP
正規表現 未使用
strpos ( 対象文字列 , mixed $needle [, int $offset = 0 ] )
文字列内の部分文字列が最初に現れる場所を見つける関数。
見つからない場合falseを返すので、それを利用し文字列が含まれているかを探します
if(strpos($subject,'bc') !== false){
//'abcd'のなかに'bc'が含まれている場合
}
if(strpos($subject,'bc') === false){
//'abcd'のなかに'bc'が含まれていない場合
}
正規表現 使用
preg_match ( 正規表現パターン , 対象文字列 [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
※第3引数の$matchesを設定した場合、マッチングした値が配列に代入されます
※第4引数の$matchesに代入される値の入り方が指定できます
if(preg_match('/bc/',$subject)){
//$subjectのなかにbcが含まれている場合
}
if(!preg_match('/bc/',$subject)){
//$subjectのなかにbcが含まれていない場合
}
[PHP リファレンス] matchesの詳細はこちら
https://www.php.net/manual/ja/function.preg-match.php
余裕ある時にでも再度まとめます
JS
正規表現 未使用
文字列.indexOf( 検索したい文字[, 検索開始位置])
文字列の中に指定した文字の存在する位置を返す。なけれあば-1になりこれを利用します。
文字列だけでなく配列でも使用可能
if ( str.indexOf('hoge') != -1) {
//strにhogeを含む場合の処理
}
正規表現 使用
文字列.match( 検索条件(正規表現パターン) )
if ( str.match(/hoge/)) {
//strにhogeを含む場合の処理
}
私がよく使うものです。
他にも仕事しながらよく使うものあったこちら更新してきます