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

JavaScriptでのソフトウェアライセンスキーのフォーマット


問題

最初の引数として文字列strを取り、2番目の引数として整数nを受け取るJavaScript関数を作成する必要があります。文字列strは、英数字とダッシュで構成されています。

ダッシュは、文字列内の英数字をグループに分割します。 (つまり、ダッシュがn個ある場合、文字列はn + 1グループに分割されます)。指定された文字列のダッシュが間違って配置されている可能性があります。

文字の各グループの長さをKにする必要があります(最初のグループは短くなる可能性がありますが、少なくとも1つの文字が含まれている必要があります)。

この要件を満たすために、ダッシュを再挿入します。さらに、この関数では、文字列内のすべての小文字を大文字に変換する必要があります。

たとえば、関数への入力が-

の場合
const str = '8-4B0t37-k';
const num = 4;

その場合、出力は-

になります。
const output = '84B0-T37K';

出力の説明:

文字列strは2つの部分に分割されており、各部分は4文字です。

このためのコードは-

になります
const str = '8-4B0t37-k';
const num = 4;
const formatKey = (str = '', num = 1) => {
   let acc = '';
   let flag = num;
   for(let i = str.length - 1; i >= 0; i--){
      const char = str.charAt(i);
      if(char !== '-') {
         if(flag === 0) {
            acc = `-${acc}`;
            flag = num;
         };
         acc = `${char.toUpperCase()}${acc}`;
         flag -= 1;
      };
   };
   return acc;
};
console.log(formatKey(str, num));

コードの説明

関数formatKey()で実行した手順は次のとおりです-

  • 逆に繰り返したので、残りの文字の場合に対応できます

  • 挿入された文字の数を保持しました。そして、それが0のとき、ダッシュを挿入してnumにリセットしました。

出力

そして、コンソールの出力は-

になります
84B0-T37K

  1. JavaScriptオブジェクトを新しい配列にフォーマットする

    以下は、JavaScriptオブジェクトを新しい配列にフォーマットするためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style

  2. JavaScriptでキープレスイベントを入力しますか?

    ENTERキーを押すイベントの場合、-で関数を呼び出すことができます。 onkeypress=”yourFunctionName” ENTERのキーコード13を使用します。 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initialscale=1.0"