数字が-
、+
、x
、またはその前に何もないかどうかを確認するにはどうすればよいですか?チェックする数字が - 、+、またはxであるかどうかをチェック
オプションは次のようになります。
20
+20
-20
x20
20は、任意の数です。
数字が-
、+
、x
、またはその前に何もないかどうかを確認するにはどうすればよいですか?チェックする数字が - 、+、またはxであるかどうかをチェック
オプションは次のようになります。
20
+20
-20
x20
20は、任意の数です。
あなたは数字の前に来る最初の非空白文字を探していたので、あなたがもう少し柔軟でかつ空白を許可したい場合は、正規表現を使用できます。
ここでの例作業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
私はこれが宿題ではないと願っています!ここでA1ien51への信用と、このような数の数が負であるかどうかに応じて、-1、0、または1を返す関数、ゼロ、または正、次のとおりです。
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
よう@Michaelが語った、今の
私はあなたにサンプルを与える(例えば-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>
この宿題はありますか? 'string.indexOf()' –
自分で何か試しましたか? – Matt
文字列や数字について話していますか? "-20"の前には " - "がありますが、-20は負の数であり、実際には何かがあるとは言えません。この場合「x」は文字か、任意の値を表すことを意味しますか? –