JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで文字列内のドット(.)をダッシュ(-)に置き換える方法


問題

今回は、文字列を引数として受け取り、その文字列中に含まれるすべてのドット(.)をダッシュ(-)に置き換えた新しい文字列を返すJavaScript関数を作成します。

入力例

const str = 'this.is.an.example.string';

出力例

const output = 'this-is-an-example-string';

ご覧のとおり、元の文字列 str 内のすべてのドット(.)がダッシュ(-)へと置き換えられています。

サンプルコード

以下が実際の実装例です。

const str = 'this.is.an.example.string';
const replaceDots = (str = '') => {
    let res = '';
    const { length: len } = str;
    for (let i = 0; i < len; i++) {
        const el = str[i];
        if(el === '.'){
            res += '-';
        }else{
            res += el;
        };
    };
    return res;
};
console.log(replaceDots(str));

コードの解説

この関数では、forループを使って文字列 str を1文字ずつ順番に走査しています。現在参照している文字がドット(.)であれば、結果を格納する変数 res には代わりにダッシュ(-)を追加し、ドット以外の文字であれば、その文字をそのまま res に追加していきます。すべての文字を処理し終えた後、完成した res を戻り値として返すことで、ドットがすべてダッシュに置き換わった文字列が得られます。

別のアプローチ:replace()を使った簡潔な実装

String.prototype.replace() メソッドと正規表現を組み合わせれば、まったく同じ処理をもっとシンプルに記述することもできます。

const str = 'this.is.an.example.string';
const replaceDots = (str = '') => str.replace(/\./g, '-');
console.log(replaceDots(str));
// 結果:this-is-an-example-string

正規表現 /\./g の末尾にある g フラグは「グローバルマッチ」を意味し、文字列内のすべての該当箇所を対象に置換を行います。また、ドット(.)は正規表現において「任意の一文字」にマッチする特殊文字(メタ文字)であるため、バックスラッシュ \. によってエスケープしている点にも注意してください。

出力結果

this-is-an-example-string
  1. JavaScriptで文字列内の文字がすべて一意かどうかを判定する方法

    問題JavaScriptの関数を作成することを目標とします。この関数は文字列を引数として受け取り、その文字列に含まれるすべての文字が一度だけ出現していれば true を返し、同じ文字が複数回出現していれば false を返します。コード例以下が実際のコードです。const str = thisconaluqe;const allUnique = (str = ) => {    for(let i = 0; i < str.length; i++){        

  2. JavaScriptで文字列内の指定した文字の直後にある次の文字を取得する方法

    課題JavaScriptで、文字列 str と1文字の char を引数として受け取る関数を作成する必要があります。この関数の役割は、元の文字列の中で char が現れる箇所をすべて見つけ、それぞれの直後に存在する文字(存在する場合のみ)を取り出して、それらを連結した新しい文字列を返すことです。例えば、対象の文字が文字列の末尾に位置している場合、その直後に文字は存在しないため、結果には含まれません。実装例以下が実際のコードです。 {     let res = ;     for(let i = 0; i <