限制用户使用Angular输入特殊字符

时间:2019-03-24 02:27:05

标签: html angular npm

允许用户输入所有字母和数字,但是输入特殊字符后,不应在文本框中输入。

我尝试使用(ng-pattern-restrict)进行此操作,但是它没有按预期工作,我认为可能需要将其导入 app-module.ts,但不起作用。

HTML FILE

2 个答案:

答案 0 :(得分:1)

通过采用角度的服务和数据绑定方法,这可能会对您有所帮助。

  

Hello.service.ts

public restrictNumeric(e) {
let input;
if (e.metaKey || e.ctrlKey) {
  return true;
}
if (e.which === 32) {
 return false;
}
if (e.which === 0) {
 return true;
}
if (e.which < 33) {
  return true;
}
input = String.fromCharCode(e.which);
return !!/[\d\s]/.test(input);

}

  

Hello.html

  <input type="tel" (keypress)="restrictNumeric($event)">

答案 1 :(得分:0)

@Shashank有一个有效的观点。您要执行的操作是禁用后端的特殊字符输入,并使前端的字段无效。知道他们在做什么的黑客很容易操纵HTTP请求本身而不是字段,从而使其很容易受到攻击。

但是,如果您坚持使用您的解决方案,我建议您使用RegEx。这个sample expression可能派上用场。这样,只要输入字段检测到这些特殊字符之一,它将用''

替换该字符。