angular inputNumber指令输入框只能输入数字的实现


Posted in Javascript onDecember 03, 2019

1、建立一个独立模块用于作为公用指令的模块

1)生成模块

ng g m directive

2)进入指令模块目录

cd directive

3)生成一个只能输入数字的指令类

ng g d numberinput

4)指令模块directive.module.ts代码如下

import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NumberinputDirective } from './numberinput.directive';
@NgModule({
 imports: [
  CommonModule
 ],
 declarations: [NumberinputDirective],
 exports:[ // 使引用该模块的类可以使用该指令
  NumberinputDirective
 ]
})
export class DirectiveModule { }

5)指令类numberinput.directive.ts代码如下

@Directive({
 selector: 'input[numberInput]'
})
export class NumberInputDirective {
 // tslint:disable-next-line: no-input-rename
 @Input('numberInput') numberType: string;
 constructor(private el: ElementRef) {}

 @HostListener('input', ['$event.target.value'])
 onChange(value: string): void {
  if (this.numberType.length < 1) {
   this.updateIntegerValue(value);
  } else {
   this.el.nativeElement.value = value.replace(/[^\d.]/g, '');
  }
 }
 @HostListener('blur', ['$event.target.value']) onBlur(value: number): void {
  if (this.numberType.length >= 1) {
   this.updateFloatValue(value);
  }
 }
 updateIntegerValue(value: string): void {
  this.el.nativeElement.value = value.replace(/[^\d]/g, '');
 }
 updateFloatValue(floatValue: number): void {
  const value = String(floatValue);
  const reg = /^-?(0|[1-9][0-9]*)(\.[0-9]*)?$/.test(value);
  const numBegin = /^\d/.test(value);
  const numEnd = /\d$/.test(value);
  if (reg && numBegin && numEnd) {
   this.el.nativeElement.value = value;
  } else {
   this.el.nativeElement.value = 0;
  }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery的一些小应用收集
Mar 27 Javascript
javascript中的prototype属性实例分析说明
Aug 09 Javascript
js文件缓存之版本管理详解
Jul 05 Javascript
网页中表单按回车就自动提交的问题的解决方案
Nov 03 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
Sep 11 Javascript
js判断手机系统是android还是ios
Mar 07 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
详解微信小程序审核不通过的解决方法
Jan 17 Javascript
使用jQuery给Table动态增加行、清空table的方法
Sep 05 jQuery
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
Nov 16 Javascript
Javascript中window.name属性详解
Nov 19 Javascript
JavaScript实现通讯录功能
Dec 27 Javascript
JavaScript的console命令使用实例
Dec 03 #Javascript
JavaScript实现京东放大镜效果
Dec 03 #Javascript
微信小程序实现图片压缩
Dec 03 #Javascript
Ant Design Pro 下实现文件下载的实现代码
Dec 03 #Javascript
Vue.js 无限滚动列表性能优化方案
Dec 02 #Javascript
浅谈关于vue中scss公用的解决方案
Dec 02 #Javascript
详解js location.href和window.open的几种用法和区别
Dec 02 #Javascript
You might like
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
JavaScript 继承详解(二)
2009/07/13 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
js漂浮广告实现代码
2015/08/15 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
小学教师培训方案
2014/06/09 职场文书
作风年建设汇报材料
2014/08/14 职场文书
土建施工员岗位职责
2015/04/11 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
初一语文教学反思
2016/03/03 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers
详细介绍python操作RabbitMq
2022/04/12 Python