Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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_Forms_Validation - Fatal编程技术网

Javascript 如何阻止多个空格清除表单验证?

Javascript 如何阻止多个空格清除表单验证?,javascript,forms,validation,Javascript,Forms,Validation,我正在开发一个简单的表单和javascript验证函数。我唯一的问题是不止一个空格将被读取为有效条目。我需要确保表单是实际填写的,而不是在每个字段中放两个空格然后提交表单。我怎样才能阻止这种事情发生?如果第一个字符是空格,是否有方法返回false,或者在没有其他字符的情况下读取任意数量的空格作为false?在验证之前,使用字符串修剪功能修剪字符串。它应该修剪前导和尾随空格。我在下面提供了一个示例,您可以查看更多有关的文档 var demoInput=document.getElementByI

我正在开发一个简单的表单和javascript验证函数。我唯一的问题是不止一个空格将被读取为有效条目。我需要确保表单是实际填写的,而不是在每个字段中放两个空格然后提交表单。我怎样才能阻止这种事情发生?如果第一个字符是空格,是否有方法返回false,或者在没有其他字符的情况下读取任意数量的空格作为false?

在验证之前,使用字符串修剪功能修剪字符串。它应该修剪前导和尾随空格。我在下面提供了一个示例,您可以查看更多有关的文档

var demoInput=document.getElementById('multipleSpaces');
var demoext=demoInput.value;
var output=document.getElementById('output');
警报('初始文本长度:'+demoText.length+'\n修剪长度'+demoText.trim().length)

如Joel所述,您好,如果要删除尾随空格,可以使用.trim()。如果您希望将字符串规范化为只有1个空间,那么可以使用以下代码段

var str = "this     is sparta   ";
    str = str.trim()
    str = str.split(/[ ]{2,}/).join(' ')

//output: "this is sparta"
Regex
/[]{2,}/
查找多于1个空格并拆分字符串,然后
.join(“”)
将拆分的元素编译为1个字符串。您可以将其缩短为以下内容:


str=str.trim()。结合一个必需的属性,这应该可以在没有任何JS的情况下实现您想要的:

<form>
    <input
        type="text"
        pattern=".*\S.*"
        title="Must contain non-whitespace characters"
        required>
    <input type="submit" value="Submit">
</form>


检查以确保该属性在目标环境中正常工作。

对该值使用
.trim