xregexp 有不同的结果
xregexp having different result
我想用规则验证字符串:
- 字符串必须至少包含一个字母
- 字符串只能包含这些符号(但不是必须的):' , - , ( , )
- 如果字符串中存在一个符号,它还必须包含一个字母(至少一个 1st bullet)
- 只有符号是不允许的
到目前为止,我已经想出了以下正则表达式:
static personName = XRegExp.cache("^[\s\p{L}\'\-\(\)]+(?=\S*\p{L})\S+$");
无法正常工作。只有 "^(?=\S*\p{L})\S+$"
这对字母有帮助,我很难理解如何向其中添加符号以便通过所有规则,我做错了什么?
试试这个正则表达式
^[a-zA-Z0-9\'\-\(\)]*[a-zA-Z][a-zA-Z0-9\'\-\(\)]*$
如果您允许的字符仅限于您列举的字符,您可以使用
var regex = XRegExp("^[\s'()-]*\p{L}[\s\p{L}'()-]*$");
如果你想允许任何字符但只允许一部分符号,使用 "at least 1 letter" 限制使用
var regex = XRegExp("^[\p{N}\s'()-]*\p{L}[\p{L}\p{N}\s'()-]*$");
查看 JS 演示:
var regex = XRegExp("^[\s'()-]*\p{L}[\s\p{L}'()-]*$");
console.log( regex.test("Sóme (unknown-string) doesn't like it") );
var regex = XRegExp("^[\p{N}\s'()-]*\p{L}[\p{L}\p{N}\s'()-]*$");
console.log( regex.test("Sóme unknown-string (123)") );
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min.js"></script>
详情
^
- 字符串开头
[\s'()-]*
- 0 个或更多空格,'
、(
、)
或 -
个字符
[\p{N}\s'()-]*
- 0 个或更多数字、空格和允许的符号
\p{L}
- 一封信
[\s\p{L}'()-]*
- 0 个或多个空格、字母、'
、(
、)
或 -
个字符
[\p{L}\p{N}\s'()-]*
- 0 个或多个字母、数字、空格和允许的符号
$
- 字符串结尾。
我想用规则验证字符串:
- 字符串必须至少包含一个字母
- 字符串只能包含这些符号(但不是必须的):' , - , ( , )
- 如果字符串中存在一个符号,它还必须包含一个字母(至少一个 1st bullet)
- 只有符号是不允许的
到目前为止,我已经想出了以下正则表达式:
static personName = XRegExp.cache("^[\s\p{L}\'\-\(\)]+(?=\S*\p{L})\S+$");
无法正常工作。只有 "^(?=\S*\p{L})\S+$"
这对字母有帮助,我很难理解如何向其中添加符号以便通过所有规则,我做错了什么?
试试这个正则表达式
^[a-zA-Z0-9\'\-\(\)]*[a-zA-Z][a-zA-Z0-9\'\-\(\)]*$
如果您允许的字符仅限于您列举的字符,您可以使用
var regex = XRegExp("^[\s'()-]*\p{L}[\s\p{L}'()-]*$");
如果你想允许任何字符但只允许一部分符号,使用 "at least 1 letter" 限制使用
var regex = XRegExp("^[\p{N}\s'()-]*\p{L}[\p{L}\p{N}\s'()-]*$");
查看 JS 演示:
var regex = XRegExp("^[\s'()-]*\p{L}[\s\p{L}'()-]*$");
console.log( regex.test("Sóme (unknown-string) doesn't like it") );
var regex = XRegExp("^[\p{N}\s'()-]*\p{L}[\p{L}\p{N}\s'()-]*$");
console.log( regex.test("Sóme unknown-string (123)") );
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min.js"></script>
详情
^
- 字符串开头[\s'()-]*
- 0 个或更多空格,'
、(
、)
或-
个字符[\p{N}\s'()-]*
- 0 个或更多数字、空格和允许的符号\p{L}
- 一封信[\s\p{L}'()-]*
- 0 个或多个空格、字母、'
、(
、)
或-
个字符[\p{L}\p{N}\s'()-]*
- 0 个或多个字母、数字、空格和允许的符号$
- 字符串结尾。