如果userInput与下面的文本匹配,我想替换文本
Ok,Ok Got it,Next & Confirm和Yes
下面是示例代码。
const userInput = "Ok Next“
我试过使用userInput.replace('ok', 'yes'),它只适用于Ok。
换句话说,我是如何让它发挥作用的??
发布于 2022-07-22 08:01:57
可以将正则表达式传递给String.prototype.replace调用的第一个参数,并使用i标志指定不区分大小写。
例如:
userInput.replace(/ok/i, 'yes')有关详细信息,请参阅这里。
发布于 2022-07-22 08:09:25
不太干净,但这会让你开始。
const watchedInputs = ["Ok", "Ok Got it", "Next", "Confirm", "Yes", "Ok Next"];
function checkUserInput(answer){
console.log(watchedInputs.includes(answer));
}
checkUserInput("Ok Next");
然而,我只是猜测你在这里的方法并不可靠。你应该放置一个单选按钮,问一个是或否的问题。
我无法想象您无法捕捉到的所有可能的用户输入都要用“是”替换。
如果您仍然希望用户输入,这应该只作为一个注释/备注字段。
发布于 2022-07-22 08:42:09
正如@kapitan回答的那样,您可以使用.include来检查字符串是否包含某种模式,它可能在这里工作,但稍后可能会生成一些bug。您可以做的是使用regex单独检查每个单词。另外,我建议您比较小写或大写的输入,以支持用户的输入,并在某个地方设置上限。在这里,yes值存储在response中:
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";
}
}<input type="test" id="userInput" placeholder="Type here">
<input type="button" onclick="check()" value="Check">
<p id="output"></p>
https://stackoverflow.com/questions/73076964
复制相似问题