你好,我无法理解这个正则表达式。为什么在这个Javascript正则表达式中W元字符无法正常工作
'^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[\d\W]).*$'
应该匹配ZXC!“#zxc123,它确实在网上JS正则表达式测试仪,但是当我在我工作的应用尝试,它不会匹配,这似乎需要信W¯¯,我假设来自于非单词选择\ W。
所以的情况下,它可以工作在一个在线测试仪,但与实际的JS。
我给自己定在小提琴上举一个例子,所以你可以看看自己。
$(document).ready(function(){
var inputField = $('#regex');
inputField.on('input', function(e){
var inputValue = $(e.currentTarget).val();
MatchString(inputValue);
});
function MatchString(str){
var matches = str.match('^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[\d\W]).*$');
if(matches){
$('#output').text('Matches')
}
else{
$('#output').text('Not matching')
}
}
MatchString(inputField.val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="regex" value='ZXC!"#zxc!"#'/>
<p id="output"></p>
我测试过正则表达式on regex101
我真的希望有一个解释,因为这似乎很奇怪我。 在此先感谢
注意'不包括_'在'( ?=。* [\ d \ W])'检查。你和你一起吗?如果你想说一个字符不是小写字母/大写字母a-z,那么直接写下''[^ a-zA-Z]' – nhahtdh
我还没有意识到这一点。谢谢 – Deetlev