繁体   English   中英

在 keyup 中使用通配符 function

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM