Javascript 如何.search()多个字符串并至少有一个to-then-do函数?
我正在为高中最后一个数学项目编写一个计算器,我似乎找不到如何.search()多个字符串,如果元素至少有一个字符串,那么它就会工作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; }
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语句