首页 > 解决方案 > 如果字符串包含特定字符,则抛出错误

问题描述

我是正则表达式的新手,我只是想知道什么是可能的正则表达式来检查我的字符串是否包含以下任一字符:o、q、i、O、Q、I。

我目前正在使用以下方法执行此操作:

const notAllowedCharacters = ['Q' , 'q' , 'O' , 'o', 'I' , 'i'];
const nameValue = this.form.get('nameValue').value.split('');
nameValue.forEach(value => {
  if(notAllowedCharacters.indexOf(value) > -1) {
   this.isValidName = false;
  }
})

谢谢。

标签: javascriptregexangular

解决方案


如果您在 Angular 中使用响应式表单,您可以在表单控件的Validators.pattern中使用“模式”:

Validators.pattern("[^oOqQiI]+")

或者,

Validators.pattern(/^[^oqi]+$/i)

/^[^oqi]+$/i表达式匹配由任何一个或多个非字符组成的整个字符串oq并且i(i是不区分大小写的标志)。

证明


推荐阅读