0

我是使用正则表达式的初学者。我试图在 SuccessFactors Onboarding 1.0 中建立验证。对于手机号码字段。人们应该能够添加最多 15 位数字和以下字符:+ ( ) 和空格。我想禁止人们输入字母(即分机)。如果格式不匹配,系统应该抛出错误。错误是在页面设置中配置的,正则表达式是一个条件,当不匹配时会导致屏幕上弹出错误,因此错误消息不需要是表达式的一部分。

我想出了以下代码:^[\d]{1,15}$|\|/[^a-z]+x/$,但该代码仅启用字符数的验证加上禁用添加字母(在测试时它似乎禁用了大写和小写)。我不知道如何添加允许添加上述字符的第三个条件。我尝试使用此代码:[\d]{1,15}$|\[^a-z]+x\|\(?:+()\$,但此代码不允许添加其他字符并禁用错误消息,用户无法继续处理到下一页,但屏幕上不会出现错误,只有旁边的红色星号场。

我可以请任何人帮助我弄清楚如何正确添加最后一段验证,以便允许 + () 和最多 15 位数字等字符,但其他所有内容都会弹出错误。

提前致谢!

4

2 回答 2

1

伪代码之类的

if (string.contains(Regex("[^\d\+\(\) ]")) throw Exception() else accept
if (string.length > 15 || string.isEmpty()) throw Exception() else accept

如果您需要更严格的条件,请举例说明什么是正确的输入,什么是不正确的

于 2021-07-22T10:18:43.830 回答
1
于 2021-07-22T10:22:46.730 回答