html 如何将字符串拆分为每两个字符

sshcrbum  于 2022-11-20  发布在  其他
关注(0)|答案(7)|浏览(235)
var alphabet = "FIN SLHOJVHEN GYKOHU";

我想把它每两个字符分开,这样它就可以打印“我爱你“
我已经试过了,但是没用

for (var i = 0 ; i \< alphabet.length ; i+=2 ){
alphabet.split(i)

请纠正我

ccrfmcuu

ccrfmcuu1#

可以将字符串转换为数组,对其进行筛选并使其再次成为字符串。

let alphabet = "FIN SLHOJVHEN GYKOHU";
alphabet = [...alphabet].filter((_, i) => i%2).join("");
console.log(alphabet); //I LOVE YOU;
ut6juiuv

ut6juiuv2#

同样,此操作会产生I LOVE YOUregex101 demo)。

// the string
let alphabet = 'FIN SLHOJVHEN GYKOHU';

// capture ^ start or chr, match latter chr
alphabet = alphabet.replace(/(^|.)./g, '$1');

console.log(alphabet);
2nbm6dog

2nbm6dog3#

由于split函数将根据您传递的分隔符拆分给定的字符串,因此在我看来,您希望首先拆分编码字符串中包含的单词(使用空格),然后才将偶数位置的字符包含在解码字符串中。
这是一个实现以下目标的演示:

const encoded = "FIN SLHOJVHEN GYKOHU"; 

const words = encoded.split(' ');
let decoded = '';
words.forEach((word)=>{
  for (let i=1;i<word.length;i+=2){
    decoded += word[i];
  }    
  decoded += ' ';
});

console.log(decoded);
oprakyz7

oprakyz74#

使用正则表达式替换方法,我们可以尝试:

var alphabet = "FIN SLHOJVHEN GYKOHU";
var output = alphabet.replace(/[A-Z]([A-Z]|(?=\s))/g, "$1");
console.log(output);

下面是正则表达式模式的解释:

  • [A-Z]匹配单个(奇数)大写字母
  • (打开捕获
  • [A-Z]大写字母
  • |
  • (?=\s)先行查找并查找空格
  • )

换句话说,我们匹配一个奇数字母,然后捕获下一个字母,除非这个奇数字母恰好是单词的最后一个字母,然后我们用捕获的偶数字母替换,如果可能的话。

mv1qrgav

mv1qrgav5#

你已经有不同的方法来做它,我添加一个,所以你会完全混淆!呵呵
这个是递归的:

  • 我们用你的字符串字母表
  • 前2个字母(每2个)
  • 这两个字符串的最后一个存储在toPrint变量中
  • 删除字母表中的前2个字符

...循环直到字母表为空
你的toPrint有我爱你
当然不是最快的一个,但很好。

let alphabet = "FIN SLHOJVHEN GYKOHU";
let toPrint = '';
do {
  let temp = alphabet.slice(0, 2);
  toPrint += temp[1];
  alphabet = alphabet.slice(2, alphabet.length);
} while (alphabet !== '');
console.log(toPrint);
s3fp2yjn

s3fp2yjn6#

您可以从1开始循环,因为您需要每隔一个字符执行一次循环,请注意,\<应为<
在循环中,i是字符的位置,因此您仍然需要获取该位置的字符,然后组装结果字符串。

var alphabet = "FIN SLHOJVHEN GYKOHU";
var result = "";
for (var i = 1; i < alphabet.length; i += 2) {
  result += alphabet[i];
}

console.log(result);

如果您要将空格考虑在内,并且只取得第二个非空白字符,您可以:

  • 通过拆分空格字符获取单独的单词
  • 删除空条目
  • 将每隔一个字符连接到字符串
  • 使用空格连接初始分割的部分
const alphabet = "    FIN      SLHOJVHEN      GYKOHU    ";
const result = alphabet
  .split(/\s+/)
  .filter(Boolean)
  .map(s => s.split("").filter((s, i) => i % 2).join(""))
  .join(" ");

console.log(result);

如果您的浏览器支持正则表达式的正lookbehind:

const alphabet = "    FIN      SLHOJVHEN      GYKOHU    ";
const result = alphabet
  .split(/\s+/)
  .filter(Boolean)
  .map(s => s.match(/(?<=^(?:..)*.)./g).join(""))
  .join(" ");

console.log(result);
dffbzjpn

dffbzjpn7#

var alphabet = "FIN SLHOJVHEN GYKOHU";
const arrayAlpha = alphabet.split('');
let stringToPrint = '';
for(let i=1; i<arrayAlpha.length; i+=2){
stringToPrint = stringToPrint + arrayAlpha[i]
}

console.log(stringToPrint)

相关问题