我正在尝试为Android项目编写一个正则表达式。这涉及的小部件是在这里找到的MaterialEditText https://github.com/rengwuxian/MaterialEditText
此编辑文本具有将正则表达式验证器链接到它的方法。到目前为止,我设法想出了这个。
"^[a-zA-Z\s]*$"
当它与此模式不匹配时,它会显示错误。我需要将另一个 addValidator 链接到它以检查编辑文本是否为空白,我该怎么做?
更新
我试过这段代码
editText.addValidator(
new RegexpValidator("Must contain letters only", "^[A-z][\sA-z]*$")).addValidator(new RegexpValidator("Cannot be blank","^$"));
当它为空时,我得到"必须只包含字母错误",当我输入任何数据时,我得到"不能为空"
- 您的
- 正则表达式确实允许前导空格,您的问题听起来不应该。
- 要禁止空白输入,您可以只使用
+
而不是*
,但结合 #1 的修复程序,这是没有必要的。
这样的事情应该有效:^[A-z][sA-z]*$
似乎你想要这样的东西,
"^[a-zA-Z]+(?:\s[a-zA-Z]+)*$"
此正则表达式不允许在开头或结尾使用空格。 +
重复上一个令牌一次或多次,*
重复上一个令牌零次或多次。
https://regex101.com/r/iJ9fB2/2