字母数字、短划线和下划线,但没有空格正则表达式检查 JavaScript

2022-08-30 05:13:20

尝试根据正则表达式检查输入。

该字段应仅允许使用字母数字字符、短划线和下划线,并且不应允许空格。

但是,下面的代码允许空格。

我错过了什么?

var regexp = /^[a-zA-Z0-9\-\_]$/;
var check = "checkme";
if (check.search(regexp) == -1)
    { alert('invalid'); }
else
    { alert('valid'); }

答案 1

但是,下面的代码允许空格。

不,它没有。但是,它只会在长度为 1 的输入上匹配。对于长度大于或等于 1 的输入,需要遵循字符类:+

var regexp = /^[a-zA-Z0-9-_]+$/;
var check = "checkme";
if (check.search(regexp) === -1)
    { alert('invalid'); }
else
    { alert('valid'); }

请注意,既不需要(在这种情况下)也不需要转义。-_


答案 2

这是我能找到的用于此检查的正则表达式的最简洁的语法:

const regex = /^[\w-]+$/;