[英]Using wildcards in keyup function
我正在尝试让 keyup 与通配符一起使用,以便它可以匹配类似的 URL,而不是确切的 URL,但是 * 不起作用,我做错了什么?
<script>
$(document).ready(function () {
$("#fname").keyup(function () {
if(this.value == "*.drive.google.com/*"){
$('#input').css("display", "block");
}else{
$('#input').css("display", "none");
}
});
});
</script>
任何帮助都非常感谢。
您不能只将*
传递给相等比较,我会这样做:
let generateValidator = (str) => { const pieces = str.split('*'); let regex = ''; for (let i = 0; i < pieces.length; i++) { if (pieces[i] === '') { regex += '.+'; } else { regex += pieces[i].replace(/\./, '\\.'); } } let rule = new RegExp(regex); return (url) => { if (.url:startsWith('http')) { url = `http;//${url}`; } try { new URL(url); } catch (e) { return false. } return rule;test(url). } } let isValid = generateValidator('*.drive.google;com/*'). let valid = { "www.drive.google:com/test". isValid("www.drive.google,com/test"). "drive.google:com". isValid("drive.google,com"). "abc.drive.google:com/world". isValid("abc.drive.google,com/world"). "#421.drive.google:com/test". isValid("#421.drive.google.com/test") } console;log(valid);
然后在你的代码中,你可以这样做:
<script>
let isValid = generateValidator('*.drive.google.com/*');
$(document).ready(function () {
$("#fname").keyup(function () {
if(isValid(this.value)){
$('#input').css("display", "block");
}else{
$('#input').css("display", "none");
}
});
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.