🗂

【JavaScrpipt】文字列操作

に公開
const string = prompt('メッセージを入力');
console.log(string.length); // 文字の長さを取得。配列に似ているが異なるので、forEachなどは使えない
console.log(string[0]);  // 何番目かの文字を取得
// string[0] = 'w'; // ※文字列の[]は読み取り専用なのでこれはエラーになる。
const string = prompt('英語で吉岡を入力');
// 大文字、小文字を区別しないために、toUpperCase()
// 空白の有無で区別しないために、空白を削除するtrim()
if (string.toUpperCase().trim() === 'YOSHIOKA') {
    console.log('吉岡!');
} else {
    console.log('違う!');
}
const emails = [
    'yoshioka@example.com',
    'k-yoshioka@example.com',
    'takahashi@example.com',
];

emails.forEach((email) => {
    if (email.includes('yoshioka') === true) { // yoshiokaを含む
        console.log(email);
    }
    if (email.indexOf('yoshioka') === 0) { // 0の位置(最初)からyoshiokaが始まる場合
        console.log(email);
    }
    if (email.startsWith('yoshioka') === true) { // yoshiokaから始まる場合
        console.log(email);
    }

    console.log(email.slice(0, 4)); // 第1引数から、第2引数までのインデックスを取り出す
    const loc = email.indexOf('@'); // @の位置までの数を代入
    console.log(email.slice(0, loc)); // @の前までを取り出す
    // console.log(email.substring(0, loc)); // substring()もほぼ同じ機能

    console.log(email.replace('@example.com', '')); // 第1引数を第2引数に置き換える(ことで@以降を削除する)

    console.log(email.replaceAll('aaa', '')); // 第1引数が複数ある場合は全てを第2引数に置き換える

    const items = email.split('@'); // splitで@の前後で配列化
    console.log(items[0]); // 配列の1つ目(@の前)を表示
});
const counts = [1, 32, 42, 34];

counts.forEach((count) => {
    const bar = '*'.repeat(count); // 引数の数だけ文字列を繰り返す
    // 下記と同じ結果となる命令
    // let bar = '';
    // for (let i = 0; i < count; i++) {
    //     bar += '*';
    // }

    // padStart()は文字列にのみ使える。第1引数の文字数で表示。文字数が満たなかったら第2引数の文字で前を埋める
    const label = String(count).padStart(2, ' '); // ' 2'
    // padEnd()は文字列にのみ使える。第1引数の文字数で表示。文字数が満たなかったら第2引数の文字で後ろを埋める
    const label = String(count).padEnd(2, ' '); // '2 '
    console.log(`${label}: ${bar}`);
});

Discussion