`
Ab.Yann
  • 浏览: 20112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

check number js

阅读更多

//==============================================
// check TextBox
//==============================================
function checkRealChar(event, id_hidden, integer_digit, decimal_digit){//onkeypress 当键盘被按下后又松开时执行脚本
var commitFlg = document.getElementById("commitFlg");
if (commitFlg.value == 1) {
event.returnValue = false;
return event.returnValue;
}

var maxLength = integer_digit + decimal_digit + 1;
event.returnValue=false;
var hiddenObject = document.getElementById(id_hidden);
var range = document.selection.createRange();
var ch_text = range.text;

if (hiddenObject != null && (removeComma(event.srcElement.value).length > maxLength)
&& ch_text != null && ch_text.length == 0) {
event.returnValue = false;
}else {
if(event.keyCode>47 && event.keyCode <58) {
event.returnValue=true;
} else if(event.srcElement.value.indexOf('-')!=-1){
event.returnValue=false;
}else if(event.keyCode==46){
if (hiddenObject.value.length == (maxLength - 1)) {
event.returnValue=false;
}else if(event.srcElement.value.indexOf('.')!=-1){
event.returnValue=false;
}else {
event.returnValue=true;
}
}
}
return event.returnValue;
}

function modifyRealNumber(event,id_hidden, id_text, integer_digit, decimal_digit){//onkeyup 当键盘被松开时执行脚本

var maxLength = integer_digit + decimal_digit + 1;

if((event.keyCode==37)||(event.keyCode==39))
return true;
if((event.keyCode > 47 && event.keyCode < 58) || (event.keyCode > 95 && event.keyCode < 106)
|| event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 189
|| event.keyCode == 190 || event.keyCode == 110){

var dummyNumberObj = document.getElementById(id_text);

var realNumberObj;
if (id_hidden != "") {
realNumberObj = document.getElementById(id_hidden);
}

if (event.keyCode == 190 || event.keyCode == 110){
if(dummyNumberObj.value.indexOf('.')==0){
dummyNumberObj.value = dummyNumberObj.value.substring(dummyNumberObj.value.indexOf('.')+1);
}else if (decimal_digit == 0){
dummyNumberObj.value = dummyNumberObj.value.replace(/[.]/g,"");
}
}

dummyNumberObj.value = removeComma(dummyNumberObj.value) ;
var oldValue = dummyNumberObj.value;

var decimalIndex = oldValue.indexOf('.');
if (decimalIndex != -1){
integerNum = oldValue.substring(0,decimalIndex);
}else {
integerNum = oldValue;
}

if(integerNum.length > integer_digit){
integerNum = integerNum.substring(0,integer_digit);
}

dummyNumberObj.value = appendComma(integerNum) ;

realNumberObj.value = integerNum;

var dotValue = 0;
if (oldValue.indexOf('.')!=-1){
dotValue = oldValue.substring(oldValue.indexOf('.')+1);
if (decimal_digit != -1 && dotValue.length > decimal_digit){
dotValue = dotValue.substring(0,decimal_digit);
}
realNumberObj.value = realNumberObj.value + "." + dotValue;
dummyNumberObj.value = dummyNumberObj.value + "." + dotValue;
}

}

}

function modifyRealNumByCopy(id_hidden, id_text, integer_digit, decimal_digit){
var maxLength = integer_digit + decimal_digit + 1;
var dummyNumberObj = document.getElementById(id_text);

var realNumberObj;
if (id_hidden != "") {
realNumberObj = document.getElementById(id_hidden);
}

if (maxLength == null || maxLength == "") {
maxLength = 15;
}

var oldval = removeComma(dummyNumberObj.value);
//if(oldval.length > maxLength){
// dummyNumberObj.value = oldval.substring(0,maxLength);
//}

oldval = removeComma(dummyNumberObj.value);
var dotValue = 0;
if (oldval.indexOf('.') != -1){
dummyNumberObj.value = oldval.substring(0,oldval.indexOf('.'));
dotValue = oldval.substring(oldval.indexOf('.')+1);
}

if(removeComma(dummyNumberObj.value).length > integer_digit){
var dummyNumber = removeZero(removeComma(dummyNumberObj.value));
dummyNumberObj.value = removeComma(dummyNumber).substring(0,integer_digit);
}

dummyNumberObj.value = appendComma(dummyNumberObj.value, "true");
if (realNumberObj != null) {
realNumberObj.value = removeComma( dummyNumberObj.value );
}
try {
var errorFlg = false;
var realNumber = realNumberObj.value;

if(!checkNumber(realNumber)){
dummyNumberObj.value = '';
realNumberObj.value = '';
}else{
if (oldval.indexOf('.')!=-1){
if(checkNumber(realNumberObj.value)){
if (integer_digit != -1 && realNumberObj.value > integer_digit){
realNumberObj.value = realNumberObj.value.substring(0,integer_digit);
}
}
if(checkNumber(dotValue)){
if (decimal_digit != -1 && dotValue.length > decimal_digit){
dotValue=dotValue.substring(0,decimal_digit);
}
if (dotValue!=""){
var dotValueTemp = parseFloat("0."+ dotValue);
dotValueTemp = dotValueTemp+"";
dotValue = dotValueTemp.substring(dotValueTemp.indexOf('.')+1);

realNumberObj.value = parseFloat(realNumberObj.value,10);

realNumberObj.value = realNumberObj.value + "." + dotValue;
//realNumberObj.value = parseFloat(realNumberObj.value);

if(realNumberObj.value.indexOf('.') != -1){
var integerTemp = realNumberObj.value.substring(0,realNumberObj.value.indexOf('.'));
var decimalTemp = realNumberObj.value.substring(realNumberObj.value.indexOf('.'),realNumberObj.value.length);
dummyNumberObj.value = appendComma(integerTemp) + decimalTemp;
}
}
}
if(realNumberObj.value == 0){
realNumberObj.value = '';
dummyNumberObj.value = '';
}
}else{
if(realNumberObj.value == 0){
realNumberObj.value = '';
dummyNumberObj.value = '';
}
}
}
}catch(e){
}
}

function appendComma(num, removeZeroFlg){
var srcNumber = new String( num ) ;
if( num == null || srcNumber.length == 0 ){
return num ;
}

if (srcNumber.substring(0, 1) == '-'){
srcNumber = '-' + removeMinus(srcNumber);
var nNum = srcNumber.substring(1);
return '-' + appendComma(nNum, removeZeroFlg)};
else
srcNumber = removeMinus(srcNumber);

if (srcNumber == '-')
return srcNumber;

if (removeZeroFlg == "true") {
num = removeZero(num);
}

var isMinus = false ;
if( num < 0 ){
isMinus = true ;
}

if( ( isMinus && srcNumber.length < 3 ) || (!isMinus && srcNumber.length < 4 )){
return num ;
}

var strValue= removeComma( srcNumber );
if (removeZeroFlg == "true") {
strValue = removeZero(strValue) + "";
}

var m = mod(strValue.length,3);
if (m==0)
m=3
else if (isMinus && m==1)
m=4;
var newValue="";
if (strValue.length>3){
newValue=strValue.substring(0,m)+",";
len=0;
if (m==3)
len=Math.floor((strValue.length)/3)-2
else if (isMinus && m==4)
len=Math.floor((strValue.length)/3)-2
else
len=Math.floor((strValue.length)/3)-1

for (i=0;i<len;i++){
newValue =newValue+strValue.substring(m+i*3,m+(i+1)*3)+",";
}
newValue =newValue+strValue.substring(m+(i)*3);
}else{
newValue=strValue;
}
return newValue;
}

function removeComma( src ){
var orgStr = new String( src ) ;
return orgStr.replace(/[,]/g,"").replace(/[ ]/g,"").replace(/[ ]/g,"");
}

function checkNumber(numberStr){
var regObj = /^\d*$/g;
if(regObj.test(numberStr)){
return true;
}else{
return false;
}
}

function removeZero(num) {
var newNum = "";
var indexReal = 0;
for (var i = 0; i < num.length; i++) {
if (num.charAt(i) != '0') {
break;
}
indexReal++;
}
if (indexReal == num.length) {
newNum = 0;
}else {
newNum = num.substring(indexReal, num.length);
}
return newNum;
}

 

分享到:
评论

相关推荐

    checkNumber-mobile

    综上所述,"checkNumber-mobile"项目涵盖了JavaScript中的正则表达式、内置函数以及特定的数字校验算法等知识点,这些都是在开发移动应用时处理用户输入数据的关键技术。通过深入理解和实践这些知识,可以提升我们在...

    ID Card Number Generator and Check in JS

    内容请见我的blog 由于众所周知的原因,没有给出中文,看下关键字就猜到到吧

    js只能输入数字(包括小数)的文本框

    `oninput="checkNumber(event)"`使得每次用户在文本框中输入时都会调用`checkNumber`函数。 此外,压缩包中的`jquery.numeral`可能是一个使用jQuery库和Numeral.js插件的实现。Numeral.js是一个强大的数字格式化库...

    js 实现 验证字符串是否全由数字组成

    js 实现 验证字符串是否全由数字组成! 值得下载看看!资源免费,大家分享!!

    前端开源库-type-check-system

    开源库“Type-Check-System”专注于提供一种简洁的JavaScript类型检查机制,它的灵感来源于流星的检查方式。这个库的目标是帮助开发者在运行时或者编译时检测变量、函数参数以及返回值的类型,从而减少因类型错误...

    Function.check:对于运行时类型声明和普通javascript中的类型检查

    在JavaScript中声明类型,而无需进行翻译。 安装 npm install function.check 包括在程序的顶部: require ( 'function.check' ) 例子 使用ES6默认值语法声明参数类型,并将arguments传递给&lt;function&gt;.check ,...

    javascript常用的页面验证

    `checkNumber`函数用于确保输入的值只包含数字。如果输入包含非数字字符,它会给出警告并清空输入。 ```javascript function checkNumber(obj) { var reg = /^[0-9]+$/; if (obj.value !== "" && !reg.test(obj....

    超强javascript

    #### `f_check_number`, `f_check_naturalnumber`, `f_check_integer`, `f_check_float`, `f_check_double` 这一系列函数使用正则表达式来验证用户输入是否符合特定的数值类型: - **`f_check_number`**:仅验证...

    check-and-format-number

    这是DEAD-请参阅format-number-with-string代替#check-and-format-number要使​​用格式字符串'-£#,## 0。## 0 / m','((33 years)','$ -99.00'重新格式化数字。 检查该数字是否为有效数字。 根据格式字符串...

    js数字校验

    JavaScript(简称JS)是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发,尤其是在客户端进行数据验证。在前端开发中,数字校验是非常重要的一环,它确保用户输入的数据符合预期的格式和范围,提高用户...

    typecheck-decorator:运行时参数验证作为ES7装饰器

    import T , { typecheck } from 'typecheck-decorator' ; class Person { constructor ( age , country , city , zipCode ) { this . age = age ; this . country = country ; this . city = city ; this . zip...

    JS金额大小写转换

    &lt;script type="text/javascript"&gt; function CheckAlls(checked) { len = document.frmmain.elements.length; var i=0; for( i=0; i; i++) { if (document.frmmain.elements[i].name=='check_node_0') { ...

    常用的JavaScript验证

    - 正则表达式 `/^[0-9]+$/` 与 `f_check_number` 类似,但增加了 `s &gt; 0` 的判断条件来确保输入的数字不为零。 **应用场景:** - 要求用户输入的商品数量等。 #### 四、`f_check_integer`函数:验证是否为整数 **...

    js限制文本框为整数和货币的函数代码.docx

    function checkNumber() { // 定义正则表达式来匹配0到100之间的整数 var reg = /^(:0|[1-9]\d|100)$/; // 获取输入框中的值 var strNumber = G("txtNumber").value; // 使用正则表达式测试输入的值 if (reg...

    JavaScript判断数字

    JavaScript是Web开发中不可或缺的一部分,尤其在前端领域,它提供了丰富的功能来处理用户交互、页面动态更新以及数据的处理。在JavaScript中,处理数字是非常常见的任务,比如验证用户输入是否为数字、进行数学运算...

    check-md:检查降价的无效链接

    用法$ npm i check-md --save$ npx check-md选项Usage: check-md [options]Options: -v, --version output the version number -f, --fix Check and try to fix -c, --cwd [path] Working directory of check-md, ...

    【JavaScript】jquery.validation.js

    除了基本的验证规则,jQuery Validation还提供了许多预定义的方法,如邮箱验证`email`、数字验证`number`等。如果这些方法不能满足需求,还可以通过自定义方法扩展验证功能。例如,创建一个检查用户名是否已被占用的...

Global site tag (gtag.js) - Google Analytics