javascript - 字符串替换不适用于 for ... of 迭代
问题描述
我正在尝试使用以下代码替换字符串中的所有元音,但它只能使用正则表达式。我如何使用 for of 迭代?
// THIS DOES NOT WORK
newStr = '';
for (const c of "aeiou") {
console.log(c);
newStr = 'Hello World'.replace(c, '*');
}
console.log(newStr); // Prints Hello World to the console
// ONLY THIS WORKS
newStr = 'Hello World'.replace(/[aeiou]/g, '*');
console.log(newStr);
解决方案
如果您不想使用正则表达式,请使用split
,作为一种方式join
newStr = 'Hello World';
for (const c of "aeiou") {
console.log(c);
//newStr = 'Hello World'.replace(c, '*');
newStr = newStr.split(c).join('*');
}
console.log(newStr); // Prints Hello World to the console
// ONLY THIS WORKS
newStr = 'Hello World'.replace(/[aeiou]/g, '*');
console.log(newStr);
推荐阅读
- java - launch.json 在 VSCode 中打开,我无法运行任何代码
- .net - 需要提高 Azure Function App 的吞吐率
- unit-testing - 如何在 Mockito Dart 版本中捕获参数
- for-loop - 错误 (10170): CRC_configurable.v(62) 附近文本的 Verilog HDL 语法错误:“整数”;期待“结束”
- javascript - 从 JSP JavaScript 的下拉列表中选择任何选项后,如何动态附加 div?
- android - 根据 Google 帐户打开结算流程时应用行为不一致
- javascript - 如何使用样式化组件更改输入元素内输入文本的样式 - React
- flutter - 如何在 Flutter 中为分区之间的滑块轨道段着色?
- c# - 当gridview c#中的col值为空时如何将行与前一行合并
- c# - rsacryptoserviceprovider verifydata SHA512CryptoServiceProvider 总是 false c#