如何查看某个号码是否有-
,+
,x
或前面没有任何内容?
要检查的选项是:
20
+20
-20
x20
20是任何数字。
答案 0 :(得分:2)
您可以使用内置的string.charAt()
函数查看字符串的第一个字符。
例如:
var myString = "...";
if(myString.charAt(0) == '+') //do something
else if(myString.charAt(0) == 'x') //do something else
...
答案 1 :(得分:1)
如果你想要更灵活一点并允许空格,那么你正在寻找一个数字之前的第一个非空白字符,你可以使用正则表达式:
var str = " + 20";
var match = str.match(/^\s*([^\d])/);
if (match) {
switch(match[1]) {
case "+":
// put code here to handle this operator
break;
case "-":
// put code here to handle this operator
break;
case "x":
// put code here to handle this operator
break;
default:
// put code here to handle unknown operator
break;
}
}
这里的工作示例:http://jsfiddle.net/jfriend00/fJcQJ/
或者,如果你想要一个可以返回前缀和数字的函数,你可以这样做:
function parseNum(str) {
var match = str.match(/^\s*([\+\-x]?)\s*(\d+)/);
if (match) {
return({
num: parseInt(match[2], 10),
prefix: match[1] ? match[1] : ""
});
}
// nothing found of the right format
return(null);
}
并且,一个包含测试用例的工作示例:http://jsfiddle.net/jfriend00/DCxcb/
答案 2 :(得分:1)
使用正则表达式捕获第一部分并返回对象的示例。注意:它已被修改为接受多个前缀(例如 -x20
)和浮点数
function hasSign(str){
return { value : /^([-+x])*(\d+\.*\d*)$/.test(str.toString())
, sign : RegExp.$1
, number : RegExp.$2
};
}
hasSign(-20); // { value:true , sign:"-" , number="20" }
hasSign(+20); // { value:true , sign:"" , number="20" }
hasSign('20'); // { value:true , sign:"" , number="20" }
hasSign('20.3'); // { value:true , sign:"" , number="20.3" } <-- float
hasSign('-20'); // { value:true , sign:"-" , number="20" }
hasSign('+20'); // { value:true , sign:"+" , number="20" }
hasSign('x20'); // { value:true , sign:"x" , number="20" }
hasSign('a20'); // { value:false , sign:"Object" , number="" } <-- false
hasSign('x'); // { value:false , sign:"Object" , number="" } <-- false
答案 3 :(得分:0)
我希望这不是功课!这是一个函数,对于一个数字返回-1,0或1,取决于该数字是负数,零还是正数,并归功于A1ien51:
function sgn(x)
{
if(x>0)return 1;
else if(x<0)return -1;
else return 0;
}
答案 4 :(得分:0)
就像@Michael告诉的那样,
现在我给你样品。
<SCRIPT language="JavaScript">
<!--
var number="+a"; // your number will use for testing
where_is_add=number.indexOf('+');
where_is_sub=number.indexOf('-');
where_is_mul=number.indexOf('*');
if(where_is_add==0){
alert('There is + in front of it.');
}
else if(where_is_sub==0){
alert('There is - in front of it.');
}
else if(where_is_mul==0){
alert('There is * in front of it.');
}
else {
alert('Nothing in front of it.');
}
</SCRIPT>