我想只在值是数字时才显示元素.这该怎么做?我试过了 :
ng-show='angular.isNumber(10)'ng-show='isNumber(10)'关于PMT计算,我发现我在互联网上有点snipet.
function PMT(i, n, p) {
return i * p * Math.pow((1 + i), n) / (1 - Math.pow((1 + i), n));
}
function CalculatePMTFromForm(idLoanAmount, idAnnualInterestRate, idMonths, idResult) {
var i = jQuery('#' + idAnnualInterestRate).val() / 1200;
var n = jQuery('#' + idMonths).val();
var p = jQuery('#' + idLoanAmount).val();
var pmt = PMT(i, n, -p);
jQuery('#' + idResult).val(pmt.toFixed(2));
}
function performCalc() {
CalculatePMTFromForm('LoanAmount', 'InterestRate', 'Months', 'Payment');
}
jQuery(document).ready(function() { performCalc(); jQuery('.calc').keyup(performCalc); });
Run Code Online (Sandbox Code Playgroud)
当页面加载时,在结果输入框中我看到"NaN",当我显示一些不相关的数字时,出现"-Infinity"msg.我在文件中搜索到"NaN",我在jquery.js中找到了,但是在我修改之后,没有任何改变.我找不到Infinity
我该如何更改此消息?
编辑
致电代码: -
function performCalc() { …Run Code Online (Sandbox Code Playgroud) 如何在jquery中验证金钱,我可以输入的最大金额是9999.99所以我的要求是:1.应该只允许数字和一个点2.max长度是7(包括点)3.前点最大长度是4 4.点最大长度为2之后
目前我的文本框只允许使用以下代码的数字和一个点
$('#txtpaymentamnt, #txttenderamt').on("keypress", function (e) {
alert(e.which);
if (e.which != 8 && e.which != 0 && ((e.which < 48 || e.which > 57) && e.which != 46)) {
e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud) 我需要使用小数分隔符和千位分隔符来验证数字是否有效.我需要一个正则表达式,因为当前的代码,我没有使用正则表达式不能正常工作,我的目标是解决它.
所以以下组合是合法的(使用.小数分隔符和,千分隔符)
但以下不合法:
基本上我想要正确使用十进制和千位分隔符或根本没有它们的数字,但不是无效的组合.我环顾四周,到目前为止,我找到了这篇文章.当数字有十进制分隔符和千位分隔符时,它有一个很好的正则表达式匹配,但是当我尝试添加其他选项(仅带小数分隔符或数字整数的数字)时,我打破了表达式.
我决定也许我可以捕获与或匹配规则的组,因此数字匹配一个表达式或另一个表达式如下:
^([+-]?[0-9]{1,3}(,[0-9]{3})*(\.[0-9]+)?)|(((\d)*)+?(\.\d))|(\d*)$
Run Code Online (Sandbox Code Playgroud)
第一组是从另一个帖子的表达,第二组我认为用小数分隔符覆盖数字,最后一个是整数,但它不起作用.
例如,这些数字不匹配:
我认为这个问题正在发生,因为它总是测试第一组,但我不确定如何正确使用组,因此它匹配其中任何一个.另外我想我会把 - +标志放在错误的地方.
我做了很多搜索,找不到一个正常工作的表达.从建议的:
((\d){1,3})+([,][\d]{3})*([.](\d)*)? - >它错误地捕获了10000000和10,000,000.^(?!0+\.00)(?=.{1,9}(\.|$))\d{1,3}(,\d{3})*(\.\d+)?$ - > 10000000失败/^(?!0+\.00)(?=.{1,9}(\.|$))(?!0(?!\.))\d{1,3}(,\d{3})*(\.\d+)?$/ - > 10000000失败((\d){1,3})+([,][\d]{3})*([.](\d)*)? - > -100.03失败 这可以在正则表达式中使用OR而不捕获所包含的内容吗?帖子不是重复的,它解释了可以帮助我解决问题的东西,但它不是重复的,特别是因为我也有+ - 符号的问题.此外,我的问题涵盖了一个对我来说不是特别的问题,这是许多人面临的问题,但从我迄今为止发现的实现来看,没有任何问题.
^-?([0-9]{1,3}\.?)+$ - >它失败了-1000但不是100.00.3而不是100.00.3^-?(?!0)(?:\d+|\d{1,3}(?:\.\d{3})+)$ - > -100.03失败为什么Javascript函数调用isNaN(123.)返回false?(注意123之后的点(.)).这是一个普遍接受的数字还是会导致下游错误?
我正在使用isNaN和split来验证值是否是有效小数.isNaN是否存在跨浏览器问题?我应该使用定制的实现吗?
谢谢.
我想知道最好和最简单的方法是确保用户输入到输入框的值是网页中的数字吗?要么通知他们,他们在编辑时不允许他们或不允许他们输入非数字值开始.
有任何想法吗?
谢谢
我有一个变量var number="1234",虽然数字是一个数值,但它介于两者之间,""所以当我使用它typeof或NaN我把它作为字符串检查.
function test()
{
var number="1234"
if(typeof(number)=="string")
{
alert("string");
}
if(typeof(number)=="number")
{
alert("number");
}
}
Run Code Online (Sandbox Code Playgroud)
我总是alert("string"),你能告诉我如何检查这是否是一个数字?
我有一个输入字段,只允许数字和一个点.
$('.number').keypress(function(event) {
var $this = $(this);
if ((event.which != 46 || $this.val().indexOf('.') != -1) &&
((event.which < 48 || event.which > 57) &&
(event.which != 0 && event.which != 8))) {
event.preventDefault();
}
var text = $(this).val();
if ((event.which == 46) && (text.indexOf('.') == -1)) {
setTimeout(function() {
if ($this.val().substring($this.val().indexOf('.')).length > 3) {
$this.val($this.val().substring(0, $this.val().indexOf('.') + 3));
}
}, 1);
}
if ((text.indexOf('.') != -1) &&
(text.substring(text.indexOf('.')).length > 2) &&
(event.which != 0 && event.which != 8) &&
($(this)[0].selectionStart …Run Code Online (Sandbox Code Playgroud)我有一个字符串,格式如下:
邮政编码
我想从这个字符串中获取City和State.
我怎么能用JavaScript做到这一点?编辑:请注意,他没有提到他到达这里时已经有了邮政编码,如果这有助于你解决问题~~ drachenstern
我正在做的事情:
我有一个javascript程序,当单击一个按钮时,从一个表单中的4个文本框中获取4个字符串,并将这些字符串输出到格式化的文本区域.
function testResults(form){
var errorhandle1 = parseInt(document.myForm.Item_Code.value);
var errorhandle2 = parseInt(document.myForm.Item_Cost.value);
var errorhandle3 = parseInt(document.myForm.Quantity.value);
//above variables are for error handling.
var d = " ";
var subtotal = parseInt(form.Item_Cost.value) * parseInt(form.Quantity.value);
var subtotalValue = parseInt(document.myForm.Subtotal.value);
var testVar = "Item Code: " + form.Item_Code.value + d +
"Item Name: " + form.Item_Name.value + d +
"Item Cost: " + form.Item_Cost.value + d +
"Quantity: " + form.Quantity.value + '\n';
document.myForm.myTextarea.value += testVar;
document.myForm.Subtotal.value = parseInt(subtotal) + subtotalValue;
document.myForm.Sales_Tax.value = …Run Code Online (Sandbox Code Playgroud) javascript ×7
jquery ×3
regex ×2
validation ×2
angularjs ×1
decimal ×1
function ×1
html ×1
parsing ×1
typeof ×1