当前位置: 首页 > 知识库问答 >
问题:

如何在第一次替换后停止替换字母?[副本]

怀洛华
2023-03-14

所以我有这样的代码:

var input = document.querySelector("input");
var h1 = document.querySelector("h1");

input.addEventListener("input", function(e){
  h1.innerText = input.value.replace(/[a]/gi, 'e').replace(/[e]/gi, 'i').replace(/[i]/gi, 'o').replace(/[o]/gi, 'u').replace(/[u]/gi, 'y')
});
<input type="text">
<h1></h1>

如你所见,如果我按“A”,它将用“E”代替“A”。但这就像多米诺骨牌效应:它现在检测“e”,并将其替换为“i”,以此类推,直到它得到“y”。我如何防止这种情况?

注意:我不擅长regex所以请试着解释一下。

共有1个答案

翟展
2023-03-14

如果交换replace()链,它将起作用,而是以.replace(/[u]/gi,'y')开始,以.replace(/[a]/gi,'e')结束

堆栈段

var input = document.querySelector("input");
var h1 = document.querySelector("h1");

input.addEventListener("input", function(e){
  h1.innerText = input.value.replace(/[u]/gi, 'y').replace(/[o]/gi, 'u').replace(/[i]/gi, 'o').replace(/[e]/gi, 'i').replace(/[a]/gi, 'e')
});
<input type="text">
<h1></h1>
 类似资料:
  • 使用 Ghostscript 9.19、Windows 10 专业版 我正在使用Ghostscript将现有PDF转换为PDF/A-1b。 然而,即使所需的字体已经嵌入到我的原始PDF中,Ghostscript仍在输出PDF/A文件中替换它们。 具体来说:将字体Times-Bold替换为Times New Roman,Bold。将字体Times-Roman替换为Times New Roman。将字

  • 我正在寻求帮助,我正在制定的代码,我希望它取代最后两个字母。我正在编写一个程序,它将: 将四个字母的单词替换为“FRED” 将以“ed”结尾的单词的最后两个字母替换为“id” 最后,如果单词以“di”开头,请将前两个字母替换为“id” 我对第二条规则有困难,我知道对于数字3,我可以使用replaceFirst();并使用长度作为第一条规则,但我不确定如何具体交换字符串中的最后两个字符。 以下是我目

  • 本文向大家介绍javascript字符串替换函数如何一次性全部替换掉,包括了javascript字符串替换函数如何一次性全部替换掉的使用技巧和注意事项,需要的朋友参考一下 JS字符串替换函数:Replace(“字符串1″, “字符串2″) 1.我们都知道JS中字符串替换函数是Replace(“字符串1″, “字符串2″),但是这个函数只能将第一次出现的字符串1替换掉,那么我们如何才能一次性全部替换

  • 我正在编写一个密码学程序,将密文转换为明文。根据字母的频率,我手动将密码的所有字母破解为明文,并且没有模式,所以我需要编写一个包含26次的循环,将字符串中的每个字母转换为另一个字母。 我的第一次尝试是在java中使用replace语句,如下所示 问题是,例如,我输入这样的字符串,我的键将是这样的“用c替换a,用p替换b,用q替换c”。我想要的输出应该是,但我得到的输出是。这意味着我希望它是一次性的

  • 问题内容: 我想在下面替换String的第一次出现。 **如果测试包含以下输入,则不应替换 请参阅评论,(末尾加空格) 看评论, 看评论** 我想获得如下输出, 提前致谢, 问题答案: 您可以使用String方法。

  • 我正在尝试使用正则表达式将大写字母替换为相应的小写字母。因此 变成 在Sublime的文本中。如何在同时包含小写和大写字母的单词中使用小写字母?所以它会影响维纳斯,而不是维纳斯。