回答
如果你想成为一个更灵活一点,允许空格,让你在寻找自带一个数字之前,你可以使用正则表达式的第一个非空白字符:
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/
添加功能,我的答案将返回前缀和数字。 – jfriend00
我希望这不是功课!这里是这样的,对于一些返回-1,0或1,取决于数是否为负的函数,零或正,以信誉A1ien51:
function sgn(x)
{
if(x>0)return 1;
else if(x<0)return -1;
else return 0;
}
您可以使用内置的string.charAt()
函数查看字符串的第一个字符。
例如:
var myString = "...";
if(myString.charAt(0) == '+') //do something
else if(myString.charAt(0) == 'x') //do something else
...
实施例。注意:它被修订,以接受多个前缀和浮点数
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
感谢@ vol7ton。我会添加什么来让它返回数字以及数值和符号? – Cybercampbell
也..我需要'hasSign('20'); // {value:true,sign:“”} '返回true ..可以轻松完成吗?我不知道RegExp ..今晚要去读一下它。 – Cybercampbell
@cybercampbell:现在检查 – vol7ron
像@迈克尔说,
现在我给你的样品(如-x20
)。
<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>
- 1. 检查数组值是否为数字
- 2. 检查数字是否为素数
- 3. 检查字符串是否为数字或不在python
- 4. 检查值是否为数字
- 5. 检查整数在常规中是否为空或数字?
- 6. 检查参数是否为字符串
- 7. 检查ID或名称为X的用户是否在线
- 8. 如何检查数字是否为零?
- 9. jquery检查值是否为数字
- 10. 如何检查值是否为数字?
- 11. 检查输入是否为数字C
- 12. 检查is_page(x)是否包含数组
- 13. 检查是否数字
- 14. 如何检查数组是否包含X或Y
- 15. 检查输入是否是C++中的数字或字符串
- 16. 如何检查是否变量是在PHP字母或数字?
- 17. 检查NSString是否为有效数字 - 整数或十进制数字
- 18. 检查查询是否为空或空字符串
- 19. 检查一个字符串是否没有字符或数字
- 20. 检查对象是否为空或NULL
- 21. 检查会话是否为空或不
- 22. 检查std :: wstring是否为空或空
- 23. Gridview检查是否为空或空
- 24. 检查列是否为空或空
- 25. 检查文件是否为空或不
- 26. 检查变量是否是数字
- 27. Lua函数检查是否ipv4或ipv6或字符串
- 28. 检查令牌是否为浮点字母数字或特殊字符。
- 29. 检查数字是否有小数点
- 30. 检查当前帧是否为X窗口的函数
这功课吗? 'string.indexOf()' –
你*自己试过什么? – Matt
你说的是字符串还是数字? “-20”在它前面有一个“ - ”,但是-20是一个负数,并且不能说真正的东西在它前面。在这种情况下是“x”还是你的意思是表示任意值? –