忽略单词并删除区分大小写和 space 以匹配
ignore words and remove case sensitive and space to match
我想忽略 'regularexpression' 但也忽略 space 和大写所以如果有人键入 'regular expression' 或 'reguLarExpression' 它仍然会匹配并忽略。你能帮忙吗
^(?!(regularexpression)$)[a-zA-Z](?:[ ()'.\-a-zA-Z]*[a-zA-Z()])
我在 parsley.js 中使用此代码:
data-parsley-pattern="^(?!(regularexpression)$)[a-zA-Z](?:[ ()'.\-a-zA-Z]*[a-zA-Z()])"
我想忽略一组单词,但它们没有 space 或小写。所以,我需要像上面的例子一样涵盖变化。
不幸的是,我不知道如何将它们组合在一起,但有人会知道,但这里是我会使用的正则表达式模式。
- 空格和字符大小写
对于正则表达式这个词。
^[A-Za-z.\s_-]+$
(?:regularexpression|regular expression)
有点难猜,也许这个表达式更接近你的想法:
(?i)^(?!(regular\s*expression)$)[a-z](?:[ ()'.a-z-]*[a-z()])$
If you wish to explore/simplify/modify the expression, it's been
explained on the top right panel of
regex101.com. If you'd like, you
can also watch in this
link, how it would match
against some sample inputs.
根据您的模式判断,您希望整个字符串只包含字母 spaces、(
、)
、'
、.
和 -
并且应该以字母开头并以字母或括号结尾。除此之外,如果字符串包含 regular expression
、regularexpression
、RegULar ExpressioN
等
,您将尝试否定匹配
在parsley.js中,你可以同时使用string和regex literal模式,即 data-parsley-pattern="\d+"
= data-parsley-pattern="/^\d+$/"
。请注意,字符串模式由框架自动锚定,而使用正则表达式文字表示法,您需要添加锚点以确保整个字符串与正则表达式匹配。
由于 JavaScript 正则表达式不支持内联修饰符,您需要使用 *regex 文字符号和 /
作为分隔符.
data-parsley-pattern
看起来像
data-parsley-pattern="/^(?!.*regular\s*expression)[a-zA-Z](?:[ ()'.a-zA-Z-]*[a-zA-Z()])?$/i"
参见regex demo。 注意 /.../i
:i
是不区分大小写的标志。
要添加更多例外,请继续添加 (?!.*my\s*new\s*phrase)
,或在单个前瞻中使用交替 (?!.*(?:regular\s*expression|my\s*new\s*phrase))
。此外,如果您需要将这些短语作为整个单词进行匹配,请使用单词边界,例如(?!.*\b(?:regular\s*expression|my\s*new\s*phrase)\b)
.
图案详情
^
- 字符串开头
(?!.*regular\s*expression)
- 如果有 regular
+ 0 个或更多的白色 space 则不匹配,然后 expression
在除换行符以外的任何 0+ 个字符之后尽可能多
[a-zA-Z]
- ASCII 字母
(?:[ ()'.a-zA-Z-]*[a-zA-Z()])?
- 一个可选的序列
[ ()'.a-zA-Z-]*
- 0+ 个 ASCII 字母,space、(
、)
、'
、.
或 -
[a-zA-Z()]
- ASCII 字母或 (
或 )
$
- 字符串结尾。
JS 演示:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="http://cdn.jsdelivr.net/parsleyjs/2.0.0-rc5/parsley.js"></script>
<form id="parsley" data-parsley-validate>
<input type="text" name="the_name" id="the_id" data-parsley-pattern="/^(?!.*regular\s*expression)[a-zA-Z](?:[ ()'.a-zA-Z-]*[a-zA-Z()])?$/i" required>
<input type="submit" />
</form>
我想忽略 'regularexpression' 但也忽略 space 和大写所以如果有人键入 'regular expression' 或 'reguLarExpression' 它仍然会匹配并忽略。你能帮忙吗
^(?!(regularexpression)$)[a-zA-Z](?:[ ()'.\-a-zA-Z]*[a-zA-Z()])
我在 parsley.js 中使用此代码:
data-parsley-pattern="^(?!(regularexpression)$)[a-zA-Z](?:[ ()'.\-a-zA-Z]*[a-zA-Z()])"
我想忽略一组单词,但它们没有 space 或小写。所以,我需要像上面的例子一样涵盖变化。
不幸的是,我不知道如何将它们组合在一起,但有人会知道,但这里是我会使用的正则表达式模式。
- 空格和字符大小写
对于正则表达式这个词。
^[A-Za-z.\s_-]+$
(?:regularexpression|regular expression)
有点难猜,也许这个表达式更接近你的想法:
(?i)^(?!(regular\s*expression)$)[a-z](?:[ ()'.a-z-]*[a-z()])$
If you wish to explore/simplify/modify the expression, it's been explained on the top right panel of regex101.com. If you'd like, you can also watch in this link, how it would match against some sample inputs.
根据您的模式判断,您希望整个字符串只包含字母 spaces、(
、)
、'
、.
和 -
并且应该以字母开头并以字母或括号结尾。除此之外,如果字符串包含 regular expression
、regularexpression
、RegULar ExpressioN
等
在parsley.js中,你可以同时使用string和regex literal模式,即 data-parsley-pattern="\d+"
= data-parsley-pattern="/^\d+$/"
。请注意,字符串模式由框架自动锚定,而使用正则表达式文字表示法,您需要添加锚点以确保整个字符串与正则表达式匹配。
由于 JavaScript 正则表达式不支持内联修饰符,您需要使用 *regex 文字符号和 /
作为分隔符.
data-parsley-pattern
看起来像
data-parsley-pattern="/^(?!.*regular\s*expression)[a-zA-Z](?:[ ()'.a-zA-Z-]*[a-zA-Z()])?$/i"
参见regex demo。 注意 /.../i
:i
是不区分大小写的标志。
要添加更多例外,请继续添加 (?!.*my\s*new\s*phrase)
,或在单个前瞻中使用交替 (?!.*(?:regular\s*expression|my\s*new\s*phrase))
。此外,如果您需要将这些短语作为整个单词进行匹配,请使用单词边界,例如(?!.*\b(?:regular\s*expression|my\s*new\s*phrase)\b)
.
图案详情
^
- 字符串开头(?!.*regular\s*expression)
- 如果有regular
+ 0 个或更多的白色 space 则不匹配,然后expression
在除换行符以外的任何 0+ 个字符之后尽可能多[a-zA-Z]
- ASCII 字母(?:[ ()'.a-zA-Z-]*[a-zA-Z()])?
- 一个可选的序列[ ()'.a-zA-Z-]*
- 0+ 个 ASCII 字母,space、(
、)
、'
、.
或-
[a-zA-Z()]
- ASCII 字母或(
或)
$
- 字符串结尾。
JS 演示:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="http://cdn.jsdelivr.net/parsleyjs/2.0.0-rc5/parsley.js"></script>
<form id="parsley" data-parsley-validate>
<input type="text" name="the_name" id="the_id" data-parsley-pattern="/^(?!.*regular\s*expression)[a-zA-Z](?:[ ()'.a-zA-Z-]*[a-zA-Z()])?$/i" required>
<input type="submit" />
</form>