2016-10-14 56 views
0

此正则表达式字符串接受的是有效的(见https://regex101.com/r/cL2wT3/2):为什么这个有效的正则表达式不被角2

^(\+27|27|0)\s?(\d{2})[-\s]?(\d{3})[-\s]?(\d{4})$ 

但由于某些原因角2抛出:

EXCEPTION: Error in ./App class App - inline template:5:8 caused by: nothing to repeat 

你可以看到这个只要您在this plnkr的文本框中输入内容,就可以在控制台中进行操作。

为什么这个字符串不被验证器接受?

+0

'/ ^^(+ 27 | 27 | 0)???S(d {2})[ - S](d {3})[ - S](d { 4})$$ /'看到这些'^^'和'$$'? –

+1

您将正则表达式作为字符串文字传递,因此您需要将反斜杠加倍。由于这种模式默认是锚定的,因此您可以省略锚点。 –

回答

1

需要转义'\'。 所以应该

^(\\+27|27|0)\\s?(\\d{2})[-\\s]?(\\d{3})[-\\s]?(\\d{4})$ 
+0

啊这是一个菜鸟的错误。应该看到它。谢谢。 –

相关问题