`
james23dier
  • 浏览: 530192 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

javascript格式化数字输入

阅读更多
最近在项目中碰到一个需求,就是在客户输入数量的时候,能够将客户输入的数量三位三位的分开显示,具体如“123,456,234”等等。于是琢磨了一半天,在boss的指导下,写出一段代码如下:
<script type="text/javascript">
function getArray(obj)
{
	var string = obj.value;
	var s      = string.replace(/,/g,"");
	var length = s.length;
	var len    = parseInt(length / 3);
	var len_y  = length % 3;
	if(len_y == 0)
	{
		len--;
		len_y = 3;
	}
	
	var rs = "";
	for(i=0;i<=len;i++)
	{
		if(i==0)
			rs = s.substring(0,len_y);
		else
		{
			if(rs != "") rs = rs+",";
			rs = rs+s.substring(len_y+(i-1)*3,i*3+len_y);
		}
	}
	obj.value =rs; 
}
</script>

然后在jsp或者html,反正就是页面中text文本框添加onkeyup="getArray(this);"就好。

    这里边有个比较关键的地方,就是过滤文本框中的数字中的“,”,js的replace(a,b)函数比较缺德,智能过滤掉第一个出现的字符串a,而不能替换掉所有的。而没有replacementAll()函数,所以必须要靠强大的正则来过滤掉所有的出现过的a了。于是用上“/g”,最开始我们使用的是“/[\,]/g”,结果一个过滤不了。最后单步调试。发现了函数吧整个引号中的部分当做过滤字符串的原型来查找,当然找不到啦,所以最后抱着试一试的心情,改成现在这个样子,嘿,就行了。
    另外不得 不说的就是这个onkeyup和onkeypress的区别。我最开始采用的是onkeypress 事件,发生了很有意思的一件事情。各位高人可以试一试。onkeypress事件发生时还没有取得输入的字符,而onkeyup事件在发生时已经取得所输入的字符。


总结如此。
0
0
分享到:
评论

相关推荐

    javascript格式化数字

    `formatNumber`函数提供了一种灵活且强大的方式来格式化数字,无论是处理大额数值还是精细化的小数点操作,都能轻松应对。通过对格式模板的定制,可以满足不同场景下的展示需求,极大地提升了用户体验与数据呈现的...

    JS中格式化数字的5个方法

    此函数用于格式化数字,使其保持指定的小数位数,并且在必要时进行四舍五入处理。 #### 参数说明 - `pnumber`: 需要被格式化的数字。 - `decimals`: 小数点后保留的位数,默认为0。 #### 示例代码 ```javascript ...

    javascript数字格式化为货币字符,数字格式化为大写货币

    在JavaScript中,对数字进行货币格式化的处理是非常常见的需求,尤其是在财务或电子商务相关的应用程序中。以下是对给定代码片段的深入解析和知识点总结。 #### 标准货币格式化函数 `formatCurrency` 此函数实现了...

    数字或金额千分位格式化组件

    这个组件的主要功能是实现数字和金额的自动格式化,将输入的数值转换成带有千分位分隔符的格式,并控制小数点后的位数。这样不仅提升了用户体验,也使得数据更易于理解和比较。 在前端开发中,我们通常会用到...

    JavaScript_在键入时格式化输入文本内容.zip

    在这个例子中,`#formattedInput`是你要格式化的输入元素,`numericOnly: true`限制只能输入数字,`delimiter: '-'`设置了分隔符,`blocks: [4, 4, 4, 4]`规定了每组数字的长度,这样用户在输入信用卡号或其他类似...

    Cleavejs的Vuejs组件用于在输入时格式化输入内容信用卡格式日期等

    - `numericOnly`:只允许数字输入 6. **双向绑定**:通过`v-model`实现数据的双向绑定,使输入值与Vue实例中的数据同步。 **应用场景** 这个Vue-Cleave-Component在实际开发中非常有用,比如: - 在支付或金融...

    JS自动格式化输入的数字/千位分隔符.rar

    这个“JS自动格式化输入的数字/千位分隔符.rar”压缩包提供的代码就是为了解决这个问题。在网页的表单中,当用户输入数字时,代码会实时地将这些数字转换成带有千位分隔符的格式,提高数据的可读性,尤其是在处理...

    javascript控制年月日输入

    2. 格式化:函数可能将输入的日期转换为指定格式,如'YYYY-MM-DD',这通常涉及到字符串操作。 3. 错误处理:如果输入不符合预期,函数可能抛出错误或者返回提示信息。 4. 用户交互:函数可能与DOM(文档对象模型)...

    JSON格式化工具-JSON格式化美化工具

    2. **美化**:除了基本的格式化,一些高级工具还提供了颜色高亮,以区分不同的JSON元素类型,如键、值、字符串、数字等,提高阅读体验。 3. **错误检查**:当输入的JSON字符串存在语法错误时,格式化工具会检测并...

    JavaScript格式化数字的函数代码

    本文将介绍一个JavaScript函数,该函数能够实现数字的格式化,还能够处理输入参数为null、空或者非数字类型的情况。 首先,我们来了解函数`formatNum`的定义。该函数包含三个参数: 1. `prmNum`:要被格式化的数字...

    H5手机号码格式化输入

    在H5开发中,我们经常需要处理用户输入的...总的来说,"H5手机号码格式化输入"是一个涉及到HTML5、JavaScript以及用户体验设计的综合技术点,通过合理的代码实现,我们可以提供一种既美观又实用的手机号码输入体验。

    离线json格式化查看工具下载

    1. **格式化**:当JSON数据以紧凑的形式(单行无缩进)存在时,格式化工具可以帮助我们将这些数据转换成清晰易读的多行格式,通过增加缩进来提高可读性。在描述中提到,只需复制粘贴JSON数据到工具中,点击“Format...

    jQuery数字格式化分隔符代码

    1. **获取数字**:首先,插件会接收一个未格式化的数字作为输入。 2. **分隔符设定**:允许用户自定义分隔符,比如用逗号、句点或者空格等。 3. **数字拆分**:根据用户设定的分隔符规则,将数字拆分成多个部分。 4....

    javascript 数字格式化输出的实现代码

    JavaScript中的数字格式化是将数字转换为特定格式的过程,以便于阅读、比较或者符合特定的显示规范。在JavaScript中,我们可以自定义函数来实现数字的格式化输出。这里提供的实现代码是一个名为`format`的函数,它...

    JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去

    在本文中,将探讨如何使用 JavaScript 对数字进行格式化,包括金额、千分位、保留指定小数位数、四舍五入等操作。 首先,介绍一个基础的函数 `formatCurrency`,该函数可以将输入的数字转换为带有千分位和两位小数...

    数字格式化工具类

    在IT行业中,数字格式化是常见的任务,尤其是在处理数据展示、报表生成或用户界面设计时。数字格式化工具类就是为了解决这类问题而设计的,它们能够帮助开发者按照特定的样式和规则来呈现数字,使得数据更加清晰易读...

    jsInputFormatter:用于 Javascript 的简单输入格式化程序-开源

    jsInputFormatter 是一种使用掩码格式化 HTML 输入的简单方法。 语法:导入 jsInputFormatter.js 在 oninput 事件上设置下面的函数为输入格式。 inputFormatter(event,mask) 事件:元素输入事件掩码:带掩码的字符串...

    使用unicode字符格式化文本

    在IT行业中,文本格式化是常见的任务之一,特别是在编程领域,如JavaScript开发。"使用Unicode字符格式化文本"这一主题涉及到如何在代码中正确地显示和处理非ASCII字符,如特殊符号、表情、多语言文字等。Unicode是...

    jQuery文本输入框内容格式化代码.zip

    2. **手机号码格式化**:对于中国的手机号码,可以自动将输入的11位数字转化为标准格式,如"13800138000",增加可读性。同时,该插件也支持其他国家的手机号码格式。 3. **时间格式(小时)**:用户输入的时间...

Global site tag (gtag.js) - Google Analytics