Javascript 正则表达式:需要两个正则表达式的 AND 组合

Javascript Regex: Need something like AND combination of two Regex

我需要一个可以检查两件事的正则表达式:

  1. 字符串不包含特殊字符,例如 - '"}{
  2. 字符串末尾不包含反斜杠 \

我可以像下面这样分别为它们形成一个正则表达式:

对于 1) /^[^'"}{]$/ - 这将确保括号内的字符不会出现在字符串中的任何位置。

对于 2) /[\\]$/ - 这将确保字符串不以反斜杠结尾。

我有一个任务不能有两个正则表达式,我只需要一个正则表达式。我希望同时检查正则表达式。据我所知,'|'符号用作 OR 运算符。有没有一种方法可以只使用一个正则表达式来检查这两个条件?

更新:

这是一个仍然使用 Backbone JS 的旧应用程序,我使用正则表达式的代码类似于以下内容:

schema :{
userPass : {
title: i18n['user.password'], 
type: "Password", 
validators: ['required', {type: "regexp", regexp: /^[^'"}{]{1,24}$/, message: i18n['user.pass.notvalid']}]}

现在,有一个新要求不允许仅在末尾使用反斜杠 \。它可以在开头或中间。

并尝试 /^(?!.*['"}{])(?!.*\$)/
如果至少有 1 个字符,请尝试 /^(?!.*['"}{])(?!.*\$)./

您可以使用

/^(?!.*\$)[^'"}{]{1,24}$/

它匹配:

  • ^ - 字符串开头
  • (?!.*\$) - 字符串末尾不允许 \
  • [^'"}{]{1,24} - 除了 '"{}
  • 之外的 1 到 24 个字符
  • $ - 字符串结尾。