Javascript 如何在存在';在一个词之前或之后是一个文本?

Javascript 如何在存在';在一个词之前或之后是一个文本?,javascript,jquery,Javascript,Jquery,我使用的脚本默认情况下,每当用户在文本区域中输入特定单词时,都会显示一个隐藏按钮。在这个场景中是“单词1”、“单词2”、“单词3”和“单词4” 我遇到的问题是,如果用户在一个单词之前输入任何文本,甚至只是一个空格,为什么这个脚本现在可以工作 请看一下我的代码: $(“#textarea3”)。在('keyup',function()上{ if($(this).val().indexOf(“单词1”)==0){ $('#word1').css('display','block'); }否则{ $

我使用的脚本默认情况下,每当用户在文本区域中输入特定单词时,都会显示一个隐藏按钮。在这个场景中是“单词1”、“单词2”、“单词3”和“单词4”

我遇到的问题是,如果用户在一个单词之前输入任何文本,甚至只是一个空格,为什么这个脚本现在可以工作

请看一下我的代码:

$(“#textarea3”)。在('keyup',function()上{
if($(this).val().indexOf(“单词1”)==0){
$('#word1').css('display','block');
}否则{
$('#word1').css('display','none');
}
if($(this).val().indexOf(“单词2”)==0){
$('#word2').css('display','block');
}否则{
$('#word2').css('display','none');
}
if($(this).val().indexOf(“单词3”)==0){
$('#word3').css('display','block');
}否则{
$('#word3').css('display','none');
}
if($(this.val().indexOf(“Word 4”)==0){
$('#word4').css('display','block');
}否则{
$('#word4').css('display','none');
}
});

单词
单词1
单词2
单词3
Word 4
如果“不工作”,则表示If条件解析为false,原因可能是您正在将字符串索引与0进行比较。如果您只想检查文本中是否包含“Word 1”,请使用input.indexOf('Word 1')!=-1


如果“不工作”,则表示
如果
条件解析为false,原因可能是您正在将字符串索引与0进行比较。如果您只想检查文本中是否包含“单词1”,请使用
input.indexOf('Word 1')!=-1
您好,谢谢您尝试帮助我,先生,但是,您上面提供的代码现在似乎产生了很多错误。现在,即使没有键入任何内容,它也会显示每个按钮。此外,它现在倾向于在一个单词前需要一个额外的空格或一些文本,如果没有,它将不会显示按钮。@ixcode我没有将0更改为-1的抱歉。我没有纠正我的回答。没关系,做了那件事之后,它现在可以正常工作了!谢谢你给我这个解决方案,它现在真的帮助我理解它!
$("#textarea3").on('keyup', function() {

if ($(this).val().indexOf("Word 1") !== -1) {
$('#word1').css('display', 'block');
}else {
$('#word1').css('display', 'none');
}


if ($(this).val().indexOf("Word 2") !== -1) {
$('#word2').css('display', 'block');
}else {
$('#word2').css('display', 'none');
}

if ($(this).val().indexOf("Word 3") !== -1) {
$('#word3').css('display', 'block');
}else {
$('#word3').css('display', 'none');
}

if ($(this).val().indexOf("Word 4") !== -1) {
$('#word4').css('display', 'block');
}else {
$('#word4').css('display', 'none');
}

});