Javascript 用于HTML表单验证的Regex开始时没有空格

Javascript 用于HTML表单验证的Regex开始时没有空格,javascript,html,regex,Javascript,Html,Regex,我有一个表单字段,我想在其中允许1到50个字母、数字和空格。不要以空格开始,以空格结束。(或者,如果它以空格开头,则不计入50。) 我有点像: ^[^s][a-zA-Z0-9_ ]{1,50}[^s]$ 但是像“AB”这样的东西现在不会通过,因为没有任何东西与{1,50}匹配 编辑: 正则表达式用于HTML输入元素模式字段。我的注释作为答案;) 此正则表达式将允许在开始和结束时输入空格,而不需要像您尝试(某种)那样输入空格 问候 编辑: 将Tims答案与此结合使用,只需避免空格: 这将强制字符

我有一个表单字段,我想在其中允许1到50个字母、数字和空格。不要以空格开始,以空格结束。(或者,如果它以空格开头,则不计入50。)

我有点像:

^[^s][a-zA-Z0-9_ ]{1,50}[^s]$
但是像“AB”这样的东西现在不会通过,因为没有任何东西与{1,50}匹配

编辑:

正则表达式用于HTML输入元素
模式
字段。

我的注释作为答案;)

此正则表达式将允许在开始和结束时输入空格,而不需要像您尝试(某种)那样输入空格

问候

编辑:

将Tims答案与此结合使用,只需避免空格:

这将强制字符串具有单词边界-即必须包含单词字符。

我的注释作为答案;)

此正则表达式将允许在开始和结束时输入空白,而不需要作为您的尝试(类型)

问候

编辑:

将Tims答案与此结合使用,只需避免空格:

这将强制字符串具有单词边界-即必须包含单词字符。

尝试此操作

^\b[\w ]{1,50}\b$
试试这个

^\b[\w ]{1,50}\b$

或使用最少的正则表达式:

函数myFunction(){
var input=document.getElementById('myInput').value.trim();
如果(input.length<1 | | input.length>50){
document.body.innerHTML+=“长度错误”;
返回false;
}
变量re=/^[\w]+$/;
if(re.exec(输入)!==null){
document.body.innerHTML+=输入+“有效”;
返回true;
}否则{
document.body.innerHTML+=输入+“无效”;
返回false;
}
}


测试
或最少使用正则表达式:

函数myFunction(){
var input=document.getElementById('myInput').value.trim();
如果(input.length<1 | | input.length>50){
document.body.innerHTML+=“长度错误”;
返回false;
}
变量re=/^[\w]+$/;
if(re.exec(输入)!==null){
document.body.innerHTML+=输入+“有效”;
返回true;
}否则{
document.body.innerHTML+=输入+“无效”;
返回false;
}
}


Test
'[^s]`表示匹配除
s
以外的任何内容-猜测您想要除
\s
(空白)以外的任何内容。你可以使用
\S
(大写字母S)
^\S[a-zA-Z0-9}{1,50}\S$
。更重要的是,我想你要找的是更像
^\S*[a-zA-Z0-9}{1,50}\S*$
,它允许在开始和结束时使用空格,而不将它们包含在50中。(正则表达式的逻辑)在开头和结尾都需要空格。
^[^\s][a-zA-Z0-9}{1,50}\b$
^\b[\w]{1,50}\b$
@ClasG您的描述听起来不错。:)'[^s]`表示匹配除
s
以外的任何内容-我猜您想要除
\s
(空白)以外的任何内容。你可以使用
\S
(大写字母S)^\S[a-zA-Z0-9}{1,50}\S$。更重要的是,我想你要找的是更像
^\S*[a-zA-Z0-9}{1,50}\S*$
,它允许在开始和结束时使用空格,而不将它们包含在50中。(正则表达式的逻辑)在开头和结尾都需要空格。
^[^\s][a-zA-Z0-9}{1,50}\b$
^\b[\w]{1,50}\b$
@ClasG您的描述听起来不错。:)我试过了。不幸的是,这使得一个空格本身也通过了测试(在输入元素的pattern属性内),这是不允许的。实际上,你可以将Tims答案与我的答案结合起来,得到你想要的东西。看编辑,我试过了。不幸的是,这使得一个空格本身也通过了测试(在输入元素的pattern属性内),这是不允许的。实际上,你可以将Tims答案与我的答案结合起来,得到你想要的东西。请参阅编辑。感谢您的输入。虽然我需要它在模式字段中。(HTML5约束验证API)很抱歉不清楚。感谢您的输入。虽然我需要它在模式字段中。(HTML5约束验证API)很抱歉,不清楚。这很有效。虽然前后都不允许有空间。它更严格,但对我来说很有效。谢谢,这很有效。虽然前后都不允许有空间。它更严格,但对我来说很有效。谢谢
^\b[\w ]{1,50}\b$