javascript中的空白正则表达式

white space regex in javascript

本文关键字:正则表达式 空白 javascript      更新时间:2023-09-26

我已经写了一个HTML 5文件。在表单中,我有一个必需的文本字段。我想以这样的方式验证这个文本字段,即用户可以用空格开始其中的值。但是他不允许只输入一个空格字符。这意味着,他可以开始键入一个空格,但不能只在文本字段中输入一个空格字符。为了解决这个问题,我通过javascript's setAttribute方法给出了pattern属性。

<form method="post" action="" id="validation">
    Name:<input type="text" id="nome"  name="nome" required="required" oninvalid="this.setCustomValidity('Name is required field')" oninput="setCustomValidity('')" /><br />
<br><br>
        <input type="submit" value="Enviar" />
    </form>
<script>
document.getElementById('nome').setAttribute("pattern",".*'S+.*");
</script>   

输出:当我只给出空间时。它的工作原理。但是当我开始输入一个空格和一些字符时,它再次验证:"Name is required field.",而现在它应该标记为正确。还有一件事,我只想通过javascript添加pattern属性。如何解决这个问题,当用户可以开始输入一个空格,但不应该只允许输入一个空格

您需要的最小样式是

^ *[^ ]+.*$

如果您想要求在字符串的中间位置(例如,5个或更多)精确地使用非空格字符,则使用

^ *[^ ]{5,}.*$

请注意,上述模式对匹配字符串末尾的空格无关,如果您想禁止尾随空格,请删除.*部分。

如果有必要,你也可以在这些例子中把空格字符更改为's,以捕获制表符,回车符,表单换行符等字符。

看起来您只是想阻止用户只输入空格字符。您可以尝试简化输入的一个实例。在这种情况下,它比使用RegEx更可靠。

如果修剪后的实例长度为空,则用户只输入空格字符。然后你可以返回一个"invalid"错误。

下面是一个逻辑示例:

if(string.trim().length === 0) {
  return false;
}

这里有一个小提琴:http://jsfiddle.net/esvsLx8u/