在JavaScript regexp中使用\ p {L}进行验证

时间:2015-07-16 09:16:39

标签: javascript regex

 @Query("select cs from CenterStudy cs where cs.id in (?1)")
 @EntityGraph(value = "centerStudyAndNotifiedUsers", type = EntityGraph.EntityGraphType.LOAD)
 List<CenterStudy> findAllByIdsWithCenterAndUsers(List<Long> ids);

当我将此作为验证时,它会为我输入的所有值抛出错误消息。所以我需要对模式进行一些解释,我认为这将解决其余问题。

2 个答案:

答案 0 :(得分:-1)

在Javascript中,序列\p{L}(在字符类中)没有特殊含义;它只是表示字母p或字母{或字符L或字符}。你可能会对XRegExp,另一个库或其他语言(例如Perl,PHP,.NET等)的regexp实现感到困惑,它们支持所谓的Unicode字符类别。

答案 1 :(得分:-2)

更改

/^[\p{L}0-9 @#'!&(),\[\].+/-]{1,100}$/

/^[\p{L}0-9 @#'!&(),\[\].+\/-]{1,100}$/

                          ^^

因为你已经将它们定义为分隔符,所以你必须转义斜杠/

正则表达式的含义是整个字符串必须是列出的字符,数字和字母的1到100个字符。