首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用特定文本替换多个文本

用特定文本替换多个文本
EN

Stack Overflow用户
提问于 2022-07-22 07:56:49
回答 3查看 40关注 0票数 0

如果userInput与下面的文本匹配,我想替换文本

OkOk Got itNext & ConfirmYes

下面是示例代码。

const userInput = "Ok Next“

我试过使用userInput.replace('ok', 'yes'),它只适用于Ok

换句话说,我是如何让它发挥作用的??

EN

回答 3

Stack Overflow用户

发布于 2022-07-22 08:01:57

可以将正则表达式传递给String.prototype.replace调用的第一个参数,并使用i标志指定不区分大小写。

例如:

代码语言:javascript
复制
userInput.replace(/ok/i, 'yes')

有关详细信息,请参阅这里

票数 1
EN

Stack Overflow用户

发布于 2022-07-22 08:09:25

不太干净,但这会让你开始。

代码语言:javascript
复制
const watchedInputs = ["Ok", "Ok Got it", "Next", "Confirm", "Yes", "Ok Next"];

function checkUserInput(answer){
  console.log(watchedInputs.includes(answer));
}

checkUserInput("Ok Next");

然而,我只是猜测你在这里的方法并不可靠。你应该放置一个单选按钮,问一个是或否的问题。

我无法想象您无法捕捉到的所有可能的用户输入都要用“是”替换。

如果您仍然希望用户输入,这应该只作为一个注释/备注字段。

票数 1
EN

Stack Overflow用户

发布于 2022-07-22 08:42:09

正如@kapitan回答的那样,您可以使用.include来检查字符串是否包含某种模式,它可能在这里工作,但稍后可能会生成一些bug。您可以做的是使用regex单独检查每个单词。另外,我建议您比较小写或大写的输入,以支持用户的输入,并在某个地方设置上限。在这里,yes值存储在response中:

代码语言:javascript
复制
const userInput = document.getElementById("userInput");
const output = document.getElementById("output");
const words = ["ok", "ok got it", "next", "confirm", "ok next"];
const wordsRegex = RegExp("\\b(" + words.join("|") + ")\\b");
let response;

function check(){
  
  if (wordsRegex.test(userInput.value.toLowerCase())){   //check in lowercase

  response = "yes";
  output.innerHTML = response;
  }
  
  else{
  output.innerHTML = "no";
  }
  
}
代码语言:javascript
复制
<input type="test" id="userInput" placeholder="Type here">
<input type="button" onclick="check()" value="Check">
<p id="output"></p>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73076964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档