我想查看我的输入是否是浮点数.
Sooo之类的......
if (typeof (input) == "float")
do something....
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
我正在根据两个文本输入的值进行一些计算.值可以是浮点数或整数.计算在keyup事件中触发.
所以目前我必须评估val以确定它是浮点数还是int然后使用parseInt或者parseFloat适当使用.
这似乎有点hacky或矫枉过正.有一个更好的方法吗?
这是一个小提琴演示:https://jsfiddle.net/2hw0tnhb/
HTML:
<label id="x-label" for="x">Float</label>
<br/>
<input type="text" name="x" id="x" value="29.7" class="axis"/>
<br/>
<br/>
<label id="y-label" for="y">Int</label>
<br/>
<input type="text" name="y" id="y" value="21" class="axis"/>
Run Code Online (Sandbox Code Playgroud)
JS:
var $x = $('#x');
var $y = $('#y');
var $axis = $('.axis');
var x_label = $('#x-label');
var y_label = $('#y-label');
$axis.keyup(function(){
var $this = $(this);
var val = $this.val();
var axis = 'x';
if($this.attr('id') === 'y') axis = 'y';
//check if int or …Run Code Online (Sandbox Code Playgroud) 我试图validate integer values从文本框中创建一个javascript函数.验证它的最佳方法是什么,只有integer and float值可以接受?
用于数字验证的必需java脚本函数.
我知道这可能是一个简单的循环,但无法想到它.
我有10个分数,我需要通过确保它们在0和1之间(大量小数)来验证它们.
输入非常宽松,因此空白,空,字母数字值可以在那里.
现在我只是
if (!(score1>=0 && score1<=1)){var result="error"} else
if (!(score2>=0 && score2<=1)){var result="error"} else
if (!(score3>=0 && score3<=1)){var result="error"} ...
Run Code Online (Sandbox Code Playgroud)
也许不是最优雅的格式,但是 - 必须有一种方法来循环这个,对吗?
在此之前,我想说对不起.但这不重复.其他帖子的任何答案都有同样的问题.JS中没有float或int(仅限数字).当您执行isInt()功能时,2.00始终检测true为整数.我希望2.00被检测为浮动.所以,我必须首先对其进行字符串化.
function isInt(i) {
if ( i.toFixed ) {
if ( i % 1 === 0 ) {
return true; // the problem is 2.00 always detected true as integer.
// i want 2.00 detected as float
} else {
return false;
}
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我想我将字符串化2.00然后用split('.')拆分它.但toString没有这样做
var i = 2.00;
alert(i.toString());
// Why this always result 2 . i want the character behind point
Run Code Online (Sandbox Code Playgroud)
那么,该怎么做?我想要2.00结果"2.00",而不仅仅是"2"
谢谢你的回答
我有一些JS:
var updateAmount = function (amount, rate) {
if (rate > 0 && amount.length > 0 && !isNaN(amount) && amount > 0) {
amount = Math.round(rate * amount * 100) / 100; // multiply rate with amount and then round to 2 decimals
$('.you-get').show();
$('#you-get').text(amount + ' ' + $currencyTo.find(':selected').text());
} else {
$('.you-get').hide();
}
};
Run Code Online (Sandbox Code Playgroud)
我需要的是一个子句,用于检查从中生成的值amount + $currencyTo.find是否为整数,如果再将其.00加到它的末尾。
我有一个用户输入,用户可以在其中编辑某物的价格。为了保持数据一致性,我想在前端站点上操作该字符串。
我想做的是:
1234 to 1234.00
12.3 to 12.30
12,3 to 12.30
1234.45 to 1234.45
Run Code Online (Sandbox Code Playgroud)
所以基本上,
用点替换逗号,这应该可以很容易地完成,例如:
str.replace(',', '.');
Run Code Online (Sandbox Code Playgroud)如果数字不是十进制,则添加点,并且始终更改两个数字的位数(因此如果需要,请添加 0)我尝试执行以下操作:
priceByUser = priceByUser.replace(/^\d*\.?\d*$/, "$1\.00");
Run Code Online (Sandbox Code Playgroud)不幸的是,这甚至没有像我预期的那样工作。
有人可以帮助我解决这个问题吗?谢谢
我使用一个简单的代码来检查会话变量是否未设置然后页面重定向到另一个页面使用javascript.我的代码是:
var userLogin = "<?php echo $_SESSION['user']['id']; ?>";
if (typeof userLogin == "undefined")
{
$(location).attr('href', 'http://www.example.com/');
}
Run Code Online (Sandbox Code Playgroud)
但它没有工作,因为如果没有设置会话,那么它分配:
var userLogin = "";
Run Code Online (Sandbox Code Playgroud)
我的问题是:两个变量声明之间有什么区别:
var userLogin = "";
Run Code Online (Sandbox Code Playgroud)
和
var userLogin;
Run Code Online (Sandbox Code Playgroud) 我正在写一些类型检查功能.我想要:
在编写isInteger时,我注意到isInteger(1.0)返回true.我希望这会返回false.
我的功能是这样的:
function isInteger(value) {
return typeof value === 'number' && value % 1 === 0;
}
Run Code Online (Sandbox Code Playgroud)
我还注意到它返回true为1.0,因为参数'value'立即转换为1(我不想要).
我这样做了:
function isInteger(value) {
console.log(value) // It prints 1 if value is 1.0
return typeof value === 'number' && value % 1 === 0;
}
Run Code Online (Sandbox Code Playgroud)
当然,我考虑可能需要使用regEx的情况:
var regEx = /^-?[0-9]+$/;
regEx.test(value)
Run Code Online (Sandbox Code Playgroud)
但是,首先我需要函数来实际测试值1.0而不是1.
我怎么能这样做才能在函数参数中维护1.0?
谢谢
javascript ×9
integer ×2
jquery ×2
regex ×2
html ×1
html5 ×1
php ×1
typechecking ×1
typeof ×1
user-input ×1
validation ×1