JSスニペット 文字列関連
随時追加
文字列から空白除去
string = string .replace(/\s+/g, "");
文字列部分検索
var string = 'abcdefg'; var pattern = 'fg'; if(string.indexOf(pattern) > -1){ // 部分一致のときの処理 }
名前を空白除去でlist検索例
const imgList = [{"name":"山田 太郎","href":"yamada.jpg"},{"name":"田中 次郎","href":"tanaka.jpg"}]; const getTantouImg = (name)=>{ name = name.replace(/\s+/g, ""); for(const imgMap of imgList){ let imgMapName = imgMap.name.replace(/\s+/g, ""); if(imgMapName.startsWith(name)){ return imgMap.href; } } return "./img/nonimg.jpg"; }
URLエンコード・デコード
const uri = 'https://mozilla.org/?x=шеллы'; const encoded = encodeURI(uri); console.log(encoded); // expected output: "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B" try { console.log(decodeURI(encoded)); // expected output: "https://mozilla.org/?x=шеллы" } catch (e) { // catches a malformed URI console.error(e); }
数値0埋め
var zeroPadding=(NUM, LEN)=>{ return ( Array(LEN).join('0') + NUM ).slice( -LEN ); }
文字列の表示px幅取得・指定px幅までカット
印刷用に幅いっぱいに表示して、改行させたくなかったので
//計測用spanを生成するfont指定、サイズなどはcss_classでやって var setRulerElement=(css_class)=>{ let body = document.querySelector( "body" ); span_element = document.createElement("span"); span_element.setAttribute("id","ruler"); span_element.setAttribute("style","visibility:hidden;position:absolute;white-space:nowrap;"); span_element.setAttribute("class",css_class); body.appendChild(span_element); } //文字幅を測る var textWidth=(text)=> { var ruler_element = document.getElementById("ruler"); ruler_element.innerHTML = text; var width = ruler_element.offsetWidth; ruler_element.innerHTML = ""; return width; } //幅に収まるまで文字を短くする var maxTextWidth=(text,max_width)=>{ let max_length = text.length; while(textWidth(text) > max_width){ max_length--; text = text.substr(0, max_length); if(0 >= text.length){ return ""; } } return text; } setRulerElement(); //商品名を帳票の幅に収まるまで短くする syouhin_name1 = maxTextWidth(syouhin_name1,355);
数字のカンマ区切り
金額等表示用に
const separate=(num)=>{ // 文字列にする num = String(num); var len = num.length; // 再帰的に呼び出すよ if(len > 3){ // 前半を引数に再帰呼び出し + 後半3桁 return separate(num.substring(0,len-3))+','+num.substring(len-3); } else { return num; } }
コメント
コメントを投稿