Javascript 在正则表达式中组合2个条件
我想创建一个正则表达式来检查非ASCII字符和一些特殊字符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字符组成的字符串
/^[\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我可以扩展吗?请添加几个有效和无效匹配的示例