回答
如果你想成爲一個更靈活一點,允許空格,讓你在尋找自帶一個數字之前,你可以使用正則表達式的第一個非空白字符:
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」還是你的意思是表示任意值? –