[過去ログ] JavaScript の質問用スレッド vol.125 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
291(2): デフォルトの名無しさん (ワッチョイ 214f-emCW [180.0.191.133]) [sage] 2022/11/28(月) 16:27:54.36 ID:HJ3Js2uA0(1/2) AAS
const checkNumberString = inputString => {
const inputAry = [...inputString]; // 文字列を配列にする
const [ firstChar, ...restAry ] = inputAry; // 1文字目と2文字目以降に分ける
if ( restAry.length === 0 ) { return false }; // 1文字しかない場合
// 1文字目が、+/- ではない場合
if ( !( firstChar === "+" || firstChar === "-" ) ) { return false };
// 2文字目以降のすべてが、数字かどうか
const res = restAry.every( ( char ) => {
const cp = char.codePointAt(0);
return ( 48 <= cp && cp <= 57 ); // 0〜9
} );
return res
}
const testAry = ['', '+', '-0', '+019', '-9🌕には𩸽'];
const results = testAry.map( (str) => checkNumberString(str) );
console.log( results );
//=> [ false, false, true, true, false ]
294: 291 (ワッチョイ 214f-emCW [180.0.191.133]) [sage] 2022/11/28(月) 19:27:13.32 ID:HJ3Js2uA0(2/2) AAS
Ruby なら、もっと簡単に書ける
def checkNumberString ( inputString )
inputAry = inputString.chars # 文字列を配列にする
return false if inputAry.length < 2 # 2文字未満
firstChar = inputAry.shift # 1文字目を取り除く
case firstChar
when "+", "-" # 処理なし
else
return false # 1文字目が、+/- ではない場合
end
# 2文字目以降のすべてが、数字かどうか
zeroToNine = ( '0'..'9' )
res = inputAry.all? { |char| zeroToNine.include?( char ) }
return res
end
testAry = %W(#{} + -0 +019 🌕には𩸽 -9🌕には𩸽)
#=> ["", "+", "-0", "+019", "🌕には𩸽", "-9🌕には𩸽"]
p results = testAry.map{ |str| checkNumberString( str ) };
#=> [false, false, true, true, false, false]
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.042s