一个新手。只是想问一下下面的代码是什么意思。
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;
}
答案 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 数据类型
indexOf 是 string 数据类型上可用的方法。它返回参数中指定的字符串/字符首次出现的索引。如果未找到字符串/字符,则它将返回-1,否则返回大于零或零本身的任何值。
在上面的示例中,字符为'',即空格字符。
if语句检查返回的值是否大于或等于零。如果值为true,则表示在 control.value
的字符串值中找到了字符空格