javascript - 忽略单词并删除区分大小写和空格以匹配

标签 javascript regex validation parsley.js

我想忽略“regularexpression”,但也忽略空格和大写,所以如果有人键入“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()])"

我想忽略一组单词,但它们没有空格或小写。因此,我需要像上面的示例一样涵盖变体。

最佳答案

根据您的模式判断,您希望整个字符串仅包含字母、空格、(, )' .- 并且应该以字母开头,以字母或括号结尾。除此之外,如果字符串包含 regular expressionregularexpressionRegULar ExpressioN 等,您将尝试否定匹配。

parsley.js 中,您可以同时使用 stringregex literal 模式,即 data-parsley-pattern="\d+" = data-parsley-pattern="/^\d+$/"。请注意,字符串模式由框架自动锚定,而对于正则表达式文字符号,您需要添加 anchor 以确保整个字符串与正则表达式匹配。

由于 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 是此处不区分大小写的标志

要添加更多异常(exception),请继续添加 (?!.*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 个或更多空格,然后是 expression,则不匹配在除换行符之外的任何 0+ 个字符之后尽可能多
  • [a-zA-Z] - 一个 ASCII 字母
  • (?:[ ()'.a-zA-Z-]*[a-zA-Z()])? - 一个可选的序列
    • [ ()'.a-zA-Z-]* - 0+ ASCII 字母,空格,(, ), ', .-
    • [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>

关于javascript - 忽略单词并删除区分大小写和空格以匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57794710/

相关文章:

validation - CakePHP isUnique 在用户编辑期间进行验证

javascript - 打开一个新的 Google Chrome 选项卡并获取源

Javascript 从字符串中删除前导数字标签

validation - 保存在编辑页面上时忽略“必需”属性

mongodb - Golang mongodb 驱动程序错误模式验证

javascript - "?:^"正则表达式是什么意思?

javascript - 如何在 Vue.js 模板中定义一个临时变量

javascript - oauth 中的 session 管理位置启用 Web 应用程序吗?

javascript - ExtJs 3.4 : Move selected items from one grid to another on a button click

正则表达式查找匹配文件扩展名的文件,除非文件名包含字符串