Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何.search()多个字符串并至少有一个to-then-do函数?_Javascript_Html - Fatal编程技术网

Javascript 如何.search()多个字符串并至少有一个to-then-do函数?

Javascript 如何.search()多个字符串并至少有一个to-then-do函数?,javascript,html,Javascript,Html,我正在为高中最后一个数学项目编写一个计算器,我似乎找不到如何.search()多个字符串,如果元素至少有一个字符串,那么它就会工作 function pie(val) { var pi = document.getElementById("display").value.search("/" | "*" | "-" | "+"); if (pi != -1) { document.getElementById("display").value += val; }

我正在为高中最后一个数学项目编写一个计算器,我似乎找不到如何.search()多个字符串,如果元素至少有一个字符串,那么它就会工作

    function pie(val) {
  var pi = document.getElementById("display").value.search("/" | "*" | "-" | "+");
  if (pi != -1) {
    document.getElementById("display").value += val;
  }
  else {
    document.getElementById("display").value = "Please add an operator";
}
}
我希望Pi只在有运算符的情况下执行,因为如果没有运算符,它只会将Pi添加到屏幕上的任何数字

//清除函数
功能c(val){
document.getElementById(“显示”).value=val;
}
//插入数字函数
函数插入(val){
document.getElementById(“显示”).value+=val;
}
//相等功能
函数相等(val){
试一试{
c(eval(document.getElementById(“display”).value))
}
渔获量(相等){
document.getElementById(“显示”).value=“错误”;
}
}
//根函数
函数根(val){
var vroot=document.getElementById(“显示”).value;
var root=Math.sqrt(document.getElementById(“display”).value);
var r=document.getElementById(“显示”).value=root;
如果(vroot<0){
document.getElementById(“显示”).value=“否”;
}
}
//馅饼浓汤
函数饼图(val){
var pi=document.getElementById(“显示”).value.search(“/”|“*”|“-”|“+”);
如果(pi!=-1){
document.getElementById(“显示”).value+=val;
}
否则{
document.getElementById(“display”).value=“请添加运算符”;
}
}
//幂函数:修正任意数的幂
功能功率(val){
var base=document.getElementById(“显示”).value;
document.getElementById(“显示”).value=base*base;
}
//日志函数
功能日志(val){
var vlog=document.getElementById(“显示”).value;
var vloged=Math.log(document.getElementById(“display”).value);
var v=document.getElementById(“显示”).value=vloged;
if(vlog<0){
document.getElementById(“显示”).value=“否”;
}
}
函数cos(val){
var vroot=document.getElementById(“显示”).value;
var root=Math.sqrt(document.getElementById(“display”).value);
var r=document.getElementById(“显示”).value=“√" + vroot+“=”+根;
}
函数sin(val){
var vroot=document.getElementById(“显示”).value;
var root=Math.sqrt(document.getElementById(“display”).value);
var r=document.getElementById(“显示”).value=“√“+vroot+”=“+root”;
}
函数tan(val){
var vroot=document.getElementById(“显示”).value;
var root=Math.sqrt(document.getElementById(“display”).value);
var r=document.getElementById(“显示”).value=“√“+vroot+”=“+root”;
}
计算器{
文本对齐:居中;
}
.显示输入{
左边距:5px;
字体大小:50px;
宽度:600px;
高度:100px;
边界半径:10px;
背景色:rgb(217217217217);
边框颜色:rgb(230230.5);
颜色:rgb(153、153、153);
边缘顶部:25px;
}
.显示输入:焦点{
大纲:0;
}
.按钮{
背景色:rgb(230230230.5);
字体大小:50px;
高度:100px;
宽度:100px;
文本对齐:居中;
保证金:3倍;
颜色:rgb(153、153、153);
边界半径:10px;
边框颜色:rgb(230230.5);
}
.按钮:悬停{
背景色:白色;
}
.按钮:焦点{
大纲:0;
}
身体{
背景色:rgb(204204204);
}

计算器


尝试重写这一行

var pi = document.getElementById("display").value.search("/" | "*" | "-" | "+");
为此:

 var pi = ["/", "*", "-", "+"].indexOf(document.getElementById("display").value);

为此,您应该使用Array.some

如果您的值与Array else false中的任何一个值匹配,它将返回true


搜索采用正则表达式。如果要查找其中任何一个,请使用/[*+-]/作为搜索参数。-Mike McCaughan


他对它进行了注释,所以我不知道如何进行注释,所以他解决了这个问题。

传递给搜索方法的内容
document.getElementById(“display”).value.search(“/”|“*”|“-”|“+”)
的工作方式与预期不同。它是一个按位or运算符,是布尔运算的一部分。haha:)采用正则表达式。如果要查找其中任何一个表达式,请使用
/[\/*+-]/
作为
搜索的参数。当显示数字时,它仍会触发else语句