自定义验证-if语句

时间:2018-08-22 17:15:09

标签: angular custom-validators

一个新手。只是想问一下下面的代码是什么意思。

if((control.value as string).indexOf(' ') >=0)

我正在做一些自学,我听不懂。如果您能在一个非常低的水平上进行解释,不胜感激。

此处是完整代码;

export class UsernameValidators {
    static connotContainSpace( control: AbstractControl) : ValidationErrors | null {
// this is the part when the validation is stated

    if((control.value as string).indexOf(' ') >=0)
     return { cannotContainSpace: true }

    return null; 
}

2 个答案:

答案 0 :(得分:3)

我试图用一个简单的例子向您解释:

control.value = "This is stackoverflow";

.indexOf(' ')将在control.value

中找到空格子字符串的第一个索引号 像在我们的示例中一样,

第一个空格出现在索引号4中,该数字大于零,然后执行if语句。

答案 1 :(得分:2)

if((control.value as string).indexOf(' ') >=0)

允许一次分解上面的代码语句。

  • control.value as string

上面的代码将 control.value 的内容转换为 string 数据类型

  • (control.value作为字符串).indexOf('')

indexOf string 数据类型上可用的方法。它返回参数中指定的字符串/字符首次出现的索引。如果未找到字符串/字符,则它将返回-1,否则返回大于零或零本身的任何值。

在上面的示例中,字符为'',即空格字符

  • if((control.value as string).indexOf('')> = 0)

if语句检查返回的值是否大于或等于零。如果值为true,则表示在 control.value

的字符串值中找到了字符空格