输入框去空格指令兼容ios苹果系统中文输入法

输入框去空格指令兼容ios苹果系统中文输入法,第1张

export class InputXXXDirective {

  constructor(private elementRef: ElementRef, private control: NgControl) { }

  @HostListener('keydown', ['$event'])
  keydownFun(evt) {
    if (evt.key && evt.key.trim() === '') {
      const u = navigator.userAgent;
      const isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios终端:拼音通过空格分词(需要兼容)
      if (!isiOS) {
        evt.preventDefault();
      }
    }
  }

  @HostListener('keyup', ['$event', '$event.target'])
  keyupFun(evt, target) {
    if (evt.key && evt.key.trim() === '') {
      const u = navigator.userAgent;
      const isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios终端:拼音通过空格分词(需要兼容)
      if (isiOS) {
        this.keychangeFun(evt, target);
      }
    }
  }

  @HostListener('change', ['$event', '$event.target'])
  keychangeFun(evt, target) {
    const reg = /(\s+)/g;
    if (target.value && reg.test(target.value)) {
      this.control.control.setValue(target.value.replace(/(\s+)/g, ''));
      target.focus();
    }
  }

}

因为苹果IOS系统的中文输入法,是通过空格分隔拼音,如果去空格会打断中文输入法,造成输入混乱,所以需要进行兼容处理。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/989505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-18
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存