我在代码中使用正则表达式来检查几个字母/字母序列。
这是我的代码:
<script>
function myFunction() {
// var str = "wr"; true
// var str = "wR"; true
// var str = "au"; true
// var str = "u"; true
// var str = "a"; true
var str = "r"; // Must be false.
alert(/[wr|wR|au|u|a]/.test(str));
}
</script>
如代码所示,它为wr
,wR
,au
和a
返回true。至于r
和R
,它必须是假的。
但如果我给'r'
或'R'
,则返回true而不是false!
我对正则表达式并不擅长。任何人都能帮助我吗?
答案 0 :(得分:2)
字符类([…]
)将匹配您放置在其中的任何字符(或字符范围)的任何单个实例。如果要使用替换(|
),它们必须在字符类之外:
alert(/wr|wR|au|u|a/.test(str));
此外,您可能希望将其放在一个组((…)
)中并使用start(^
)并在您的模式周围停止($
)锚点,否则,它会很高兴匹配a
中的war
。
alert(/^(wr|wR|au|u|a)$/.test(str));