有人能解释一下这两个正则表达式的区别吗?
Can anyone explain the difference between these two regular expressions?
/^[a-zA-Z]+$/
和
/[^a-zA-Z]+$/
表达式开头的^
表示"锚定在字符串的开头"。
字符类 []
表达式中的^
表示negate
。
因此,/^[a-zA-Z]$/
匹配的字符串(从头到尾)完全由大写字母和小写字母组成,而/[^a-zA-Z]$/
匹配的是"不由字母字符组成的字符串的末尾"(例如,字符串末尾的数字)。
this is a string -- matches neither
(contains non alphabetic, but doesn't end in it)
this is a number: 123 -- second expression matches ': 123'
(string ends in non-alphabetic characters)
this -- first expression matches 'this'
(string contains only alphabetic characters)
在第一种情况下,^
表示输入的开始。情形二否定项
情形1:从开始(^
)到结束($
)匹配a-zA-Z
0次或以上(+
)次
案例2:用a-zA-Z
0-x(+
)字符匹配所有不(^
)结束($
)的字符
/^[a-zA-Z]+$/
表示字符串应该^
:以
开头[a-zA-Z]
:小写或大写字母+
:至少一个以上的,在这个例子中至少一个α字符$
:应该以大写或小写字母
例子:
OnLyUpPeRaNdLoWeRcAsEaNdNoSpAcEs
/[^a-zA-Z]+$/
[^a-zA-Z]
: NOT一个大写或小写字符+
:以上至少一个,在本例中至少有一个字符但不的大写或小写字母$
:应该以none
大写或小写字母
例子:
123456789
Anything12345 <——这可以工作,因为我们没有指定字符串应该如何开始,但我们知道它应该以一个非alpha字符
相关文章:
- 组合angularjs表单字段的两个正则表达式
- Javascript正则表达式来比较两个字符串
- 用于获取两个方括号之间的数字的正则表达式
- 将具有两个此类子字符串的字符串中的第一个子字符串生成与正则表达式匹配,正则表达式通常默认匹配最后一个子字符串
- 正则表达式允许字母数字和空格,但不允许连续两个空格
- 在 JS 中组合两个正则表达式
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- 如何在 javascript 中使用正则表达式在其他两个字符串之间找到一个字符串
- 字符串必须与正则表达式中的两个值匹配
- Javascript 正则表达式:获取最后两个段,用点除
- 删除两个字符串正则表达式之间的所有内容
- 使用javascript中的正则表达式提取最后两个斜杠之间的字符串
- 正则表达式从一个长字符串中提取两个项
- 正则表达式第一个条目
- 正则表达式第一个结果($ 1)替换为变量的属性
- 正则表达式 4 个非连续数字,没有重复数字
- 正则表达式两个数学运算符并排
- Javascript正则表达式两个正则表达式的区别
- 如何正则表达式两个标记之间的字符串,并返回不带标记的字符串
- 检查多个字符串是否匹配多个正则表达式(两个数组)