Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否只允许输入字母、数字和连字符?_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 是否只允许输入字母、数字和连字符?

Javascript 是否只允许输入字母、数字和连字符?,javascript,jquery,regex,Javascript,Jquery,Regex,我只接受输入中的字母、数字和连字符破折号。在php中,我执行以下操作: if(!preg_match("/^[A-Za-z0-9-]+$/", $input)) { echo "Only letters, numbers, and hyphens are allowed."; } 如何在香草javascript中实现同样的功能?如果在纯javascript中不可能,我如何在jquery中实现它?谢谢您可以使用/{criteria}/{flags}启动一个新的正则表达式。您的正则表达式将

我只接受输入中的字母、数字和连字符破折号。在php中,我执行以下操作:

if(!preg_match("/^[A-Za-z0-9-]+$/", $input)) {
    echo "Only letters, numbers, and hyphens are allowed.";
}

如何在香草javascript中实现同样的功能?如果在纯javascript中不可能,我如何在jquery中实现它?谢谢

您可以使用/{criteria}/{flags}启动一个新的正则表达式。您的正则表达式将转换为如下内容:

/^[aA-zZ0-9-]+$/g.test(/* value to test here*/)

您可以使用/{criteria}/{flags}启动一个新的正则表达式。您的正则表达式将转换为如下内容:

/^[aA-zZ0-9-]+$/g.test(/* value to test here*/)

改编自Sylvain的回答:

注意:jQuery几乎是vanilla js的包装器,它可以生成许多常见语句,比如shorter,假设jQuery可以直接转换为vanilla js通常是安全的,我想不出任何jQuery功能不同的例子

您可以选择表单中的所有输入或您想要的任何输入,然后根据正则表达式Sylvain测试它们的值,该正则表达式使用一个选择所需字符的倒数的正则表达式,这样,如果存在无效字符,并且有任何禁止字符,则该值将为真,从而阻止表单提交,并执行一些其他操作,要求用户解决该问题

document.getElementByIdformWhitelistedChars.addEventListenersubmit,函数E{ //获取我们特别关注的表单中的所有输入,此选择器可以 //如果要将其应用于特定输入,则会发生更改 var inputs=document.queryselectoral'formWhitelistedChars input'; var禁止字符=/[^a-z\d\-]/ig; //检查我们选择的所有输入 输入的forvar输入{ //以防选择器决定做一些奇怪的事情 如果!输入继续; //检查是否有任何禁用的字符 ifforbiddenChars.testinput.value{ //这一行只是在Stackoverflow出现故障时执行一些操作 //我建议删除此项,并在应用程序中执行一些不同的操作 console.log'input'+input.name+'具有禁止字符'; //在这里做事 //阻止提交,即使传播不提交 e、 防止违约; 返回false; } } }; 提交
改编自Sylvain的回答:

注意:jQuery几乎是vanilla js的包装器,它可以生成许多常见语句,比如shorter,假设jQuery可以直接转换为vanilla js通常是安全的,我想不出任何jQuery功能不同的例子

您可以选择表单中的所有输入或您想要的任何输入,然后根据正则表达式Sylvain测试它们的值,该正则表达式使用一个选择所需字符的倒数的正则表达式,这样,如果存在无效字符,并且有任何禁止字符,则该值将为真,从而阻止表单提交,并执行一些其他操作,要求用户解决该问题

document.getElementByIdformWhitelistedChars.addEventListenersubmit,函数E{ //获取我们特别关注的表单中的所有输入,此选择器可以 //如果要将其应用于特定输入,则会发生更改 var inputs=document.queryselectoral'formWhitelistedChars input'; var禁止字符=/[^a-z\d\-]/ig; //检查我们选择的所有输入 输入的forvar输入{ //以防选择器决定做一些奇怪的事情 如果!输入继续; //检查是否有任何禁用的字符 ifforbiddenChars.testinput.value{ //这一行只是在Stackoverflow出现故障时执行一些操作 //我建议删除此项,并在应用程序中执行一些不同的操作 console.log'input'+input.name+'具有禁止字符'; //在这里做事 //阻止提交,即使传播不提交 e、 防止违约; 返回false; } } }; 提交
可能重复@Jedi我要求的是香草javascript。最后一个-应该转义:[A-Za-z0-9\-]您可以将其短为:/^[A-z\d\-]+$/i忽略大小写敏感度,并\d表示数字。您应该使用.test来测试不匹配,这样更好。@ibrahimmahrir:不需要在字符类的开头或结尾转义dash,因为它不表示范围。可能是@Jedi的副本,我要的是香草javascript。最后一个-应该转义:[a-Za-z0-9\-]您可以将其缩短为:/^[a-z\d\-]+$/i忽略大小写敏感度,数字为\d。您应该使用.test来测试not match,这样更好。@ibrahimmahrir:不需要在字符类的开头或结尾转义dash,因为它不表示范围。您好,对不起,我不是在找事件侦听器。如何在document.getElementByIdform.onsubmit=函数{?表单提交实际上也是一个事件,因此它将是document.getElementByIdfor
m、 addEventListenersubmit,函数{..}我将根据更新我的答案嗨,对不起,我没有寻找事件侦听器。如何在我的文档中实现。getElementByIdform.onsubmit=函数{?表单提交实际上也是一个事件,因此它将是document.getElementByIdform.addEventListenersubmit,函数{..}。我将相应地更新我的答案