如何在javascript中为字符串中不允许前导和结尾空格编写RegExpression

如何在javascript中为字符串中不允许前导和结尾空格编写RegExpression,javascript,regex,Javascript,Regex,我正在写一个Javascript正则表达式,但没有得到正确的答案, 我在写一个表达法 •对输入数据没有限制 •不允许有起始和结束空间 我像/^\S*\S$/一样写,但没有得到正确的输出,请帮助我。没有必要使用regeex。通过使用if,您可以轻松检查第一个或最后一个字符是否为空白 大概是这样的: var input = " my text with whitespaces"; if(input[0] == " " || input[input.length-1] == " ") { co

我正在写一个Javascript正则表达式,但没有得到正确的答案, 我在写一个表达法

•对输入数据没有限制

•不允许有起始和结束空间


我像/^\S*\S$/一样写,但没有得到正确的输出,请帮助我。

没有必要使用regeex。通过使用
if
,您可以轻松检查第一个或最后一个字符是否为空白

大概是这样的:

var input = " my text with whitespaces";

if(input[0] == " " || input[input.length-1] == " ") {
   console.log("error");
}
子字符串版本:

var input = " my text with whitespaces";

if(input.substring(0,1) == " " || input.substring(input.length-1, input.length) == " ") {
   console.log("error");
}

您可以使用负前瞻:

(/^\S+(?!.*\s$).*$/).test('my string')
^\S+
在字符串开头匹配一个非空白字符

(?!.*\s$)
字符串末尾空白的负前瞻

*
匹配其他任何内容

如果字符串的开头或结尾有空格,则计算结果为true,否则为false

您还可以执行以下操作:

!(/^\s+|\s+$/).test('my string')

根据对正则表达式的了解,它可能更具可读性。

您几乎完全正确,只需在
*
之前添加一个
。通过这种方式,它只检查第一个和最后一个字符是否为空白,并允许介于两者之间的任何内容。正如您所看到的,字符串中的每个字符都不能是空白,因此像
hello-hello
这样的字符串将失败

/^\S.*\S$/

/^\s |\s$/.test(字符串)?“以空格开始或结束”:“ok”您能否提供数据示例和所需结果?简单地写
/.+/g
将给出所有内容,而不带起始和结束空格,或者
/\w+/g
将给出内容中的每个单词,而不带空格。并非所有正在使用的浏览器都允许按索引访问字符串。不过,使用
子字符串
的等效方法应该可以很好地工作。哇。。。我不知道。谢谢你提供的信息:)我在《第一极》中也考虑过,但我想这不是他想要的。。他想要厌恶只有前导、尾随以及两者都有的字符串,即带约束和带约束的空格。。因此,RobG评论中的解决方案是correct@nozzlemanRobG的解决方案检测到与此完全相同的条件,他的正好相反(即,当我的返回true时,他的返回false)。正在检查
!a和!b
是检查
a或b