我制作了存储5种不同颜色名称的数组。因此,例如,如果字符串是“熊是黑色,极地是白色”。然后我想显示字符串中有一些颜色名称。但我不能这样做,因为我只是一个初学者和我只知道javascript的基础知识。现在我正在开发一个小应用程序,它显示文本中是否有颜色名称。我认为这将是一种很好的学习方式。自从过去6个小时后我开始转头,但现在我放弃了。请问有人帮忙吗?请原谅我的缩进,因为我已经快速编写了代码。
<script type="text/javascript">
function getNumber(){
var colors = ["black","blue","green","yellow","white"];
var getstring = document.getElementById("tobechecked");
var splitter = getstring.split(" ");
var i;
var j;
for(i=0;i<colors.length;i++){
for(j=0,j<splitter.length;j++){
if(splitter[j]==colors[i]){
alert("colors exists");
return true;
}
else
{
alert("colors don't exists");
return false;
}
}
}
}
</script>
<textarea rows="20" cols="50" id="tobechecked">
</textarea>
<button type="button" onclick="getNumber()"> Check !</button>
答案 0 :(得分:0)
尝试indexOf检查另一个字符串中是否存在字符串
如果找不到-1
,将返回index
var colors = ["black","blue","green","yellow","white"];
var getstring = document.getElementById("tobechecked");
for(var i=0;i<colors.length;i++)
{
if(getstring.value.indexOf(colors[i])>-1){
// exists
}
}
答案 1 :(得分:0)
使用此:
function getNumber(){
var colors = ["black","blue","green","yellow","white"],
string = document.getElementById("tobechecked").innerText,
i,length = colors.length;
for( i=0; i < length; i++ ) {
if( string.indexOf( colors[i] ) !== -1 ) {
alert("colors exists");
return true;
}
}
alert("color doesn't exist");
return false;
}
答案 2 :(得分:0)
您的代码有语法错误,而且您在进行任何测试后都会立即从函数返回。您可以在找到颜色后立即返回,但如果您找不到颜色,则需要继续检查并且最后只返回失败。
function getNumber() {
var colors = ["black", "blue", "green", "yellow", "white"];
var getstring = document.getElementById("tobechecked").value;
var splitter = getstring.split(" ");
var i, j;
for (i = 0; i < colors.length; i++) {
for (j = 0; j < splitter.length; j++) {
console.debug("Compare", splitter[j], colors[i]);
if (splitter[j] == colors[i]) {
alert("Color found");
return true;
}
}
}
alert("Color not found");
return false;
}
&#13;
<textarea rows="20" cols="50" id="tobechecked">
</textarea>
<button type="button" onclick="getNumber()">Check !</button>
&#13;