Javascript 在正则表达式中组合2个条件

Javascript 在正则表达式中组合2个条件,javascript,java,regex,string,match,Javascript,Java,Regex,String,Match,我想创建一个正则表达式来检查非ASCII字符和一些特殊字符 /^[\x00-\x7F]+$/ '[^{}$]*' 这些条件是单独工作的,但当我将它们结合起来时就不行了。试用 /^([\x00-\x7F]|[^{}$]*)$/ but failing. 任何帮助都将不胜感激。提前感谢。看起来您的正则表达式的[\x00-\x7F]部分有问题。我试过以下方法,效果很好 ^([[:ascii:]+$|[^{}$]*)$^[\x00-\x7F]+$-匹配完全由ascii字符组成的字符串

我想创建一个正则表达式来检查非ASCII字符和一些特殊字符

 /^[\x00-\x7F]+$/  

 '[^{}$]*'
这些条件是单独工作的,但当我将它们结合起来时就不行了。试用

/^([\x00-\x7F]|[^{}$]*)$/   but failing.

任何帮助都将不胜感激。提前感谢。

看起来您的正则表达式的
[\x00-\x7F]
部分有问题。我试过以下方法,效果很好


^([[:ascii:]+$|[^{}$]*)$
^[\x00-\x7F]+$
-匹配完全由ascii字符组成的字符串

 /^[\x00-\x7F]+$/  

 '[^{}$]*'
[^{}$]*
匹配零个或多个与
{
}
$
不同的字符

因此,第二条规则匹配任何字符串。如果这是您的意图,只需使用第一个正则表达式

如果要匹配任何仅ASCII字符串(不包括
{
}
$
),请使用

^(?=[\x00-\x7F]+$)[^{}$]*$

解释

--------------------------------------------------------------------------------
  ^                        the beginning of the string
--------------------------------------------------------------------------------
  (?=                      look ahead to see if there is:
--------------------------------------------------------------------------------
    [\x00-\x7F]+             any character of: '\x00' to '\x7F' (1 or
                             more times (matching the most amount
                             possible))
--------------------------------------------------------------------------------
    $                        before an optional \n, and the end of
                             the string
--------------------------------------------------------------------------------
  )                        end of look-ahead
--------------------------------------------------------------------------------
  [^{}$]*                  any character except: '{', '}', '$' (0 or
                           more times (matching the most amount
                           possible))
--------------------------------------------------------------------------------
  $                        before an optional \n, and the end of the
                           string

组合的第一部分中缺少
+
/^([\x00-\x7F]+|[^{}$]*)$/
扩展第一个备选组以包含特殊字符Show我可以扩展吗?请添加几个有效和无效匹配的示例