Angular 空白字符的验证?角度4

Angular 空白字符的验证?角度4,angular,validation,Angular,Validation,我需要在我的表单上创建某种验证,我不希望用户能够在字段中输入1++空格。所以,他可以键入空格,但不能只键入空格。目前我的验证是这样的: this.valForm = this.fb.group({ 'firstName': [null, Validators.compose([Validators.required, Validators.maxLength(50)])], 'lastName': [null, Validators.compose([Validators

我需要在我的表单上创建某种验证,我不希望用户能够在字段中输入1++空格。所以,他可以键入空格,但不能只键入空格。目前我的验证是这样的:

this.valForm = this.fb.group({
      'firstName': [null, Validators.compose([Validators.required, Validators.maxLength(50)])],
      'lastName': [null, Validators.compose([Validators.required, Validators.maxLength(50)])]
});

我不知道使用什么模式来创建这种类型的验证。谢谢。

您只需创建一个自定义验证器来检查

userInputString.trim() !== ''
验证器只不过是一个函数,它接受一个控件并返回它是否有效(作为布尔值或承诺/可观察值)

有关更多详细信息,请查看angular 2+中定制验证器的任何示例,例如

你可以做

'firstName': [null, [Validators.required, Validators.maxLength(50), Validators.pattern(/^((?!\s{2,}).)*$/)]]
如果使用链
^((?!\s{2,})。*$
对其进行测试,您会发现

Hello darling // Matches
Hello  darling // Doesn't match
这不是正则表达式应该做的事情:他们不擅长。正则表达式应该在字符串中查找表达式的出现,而不是相反。但是,他们仍然可以做到


如果您想了解更多信息,这称为负面环视

用户只能输入一个空格,对吗?@ArunKumaresh用户可以输入空格,但不能仅输入字段内的空格,因此它可以是“示例值”,但不能是“”,“”,诸如此类,不是吗。indexOf(“”)检查场地内是否有空位?哦,对不起,我误解了你的问题,请稍候,我会调整我的答案