Javascript 字符串开头和结尾没有空格

Javascript 字符串开头和结尾没有空格,javascript,regex,typescript,regex-negation,Javascript,Regex,Typescript,Regex Negation,在我的角度应用程序(Typescript)中,我希望根据用户插入的值的开头和结尾处的空格检查输入 下面的正则表达式是我找到的最常见的答案。但是这个正则表达式的test函数没有返回正确的布尔值 如果字符串的开头、结尾或两者都包含空格,则返回false的正确RegExp是什么 函数myFunction(){ var myStr=document.getElementById(“reader”).value; var regex1=/[^\s].+[^\s]/; var regex2=新的RegEx

在我的角度应用程序(Typescript)中,我希望根据用户插入的值的开头和结尾处的空格检查
输入

下面的正则表达式是我找到的最常见的答案。但是这个正则表达式的
test
函数没有返回正确的布尔值

如果字符串的开头、结尾或两者都包含空格,则返回false的正确RegExp是什么

函数myFunction(){
var myStr=document.getElementById(“reader”).value;
var regex1=/[^\s].+[^\s]/;
var regex2=新的RegExp('[^\s].+[^\s]','i');
var result1=regex1.test(myStr);
var result2=regex2.test(myStr);
document.getElementById(“writer1”).value=result1;
document.getElementById(“writer2”).value=result2;
}

正则表达式:


使用构造函数:

使用第一个模式
^[^\s].+[^\s]$
字符串必须至少有3个字符,因为被求反的字符类需要匹配,
+
将匹配除换行符以外的任何字符的1倍以上

第二个模式
[^\s].+[^\s]
未锚定,也将允许部分匹配

如果还希望匹配
a
aa
,则可以使用否定查找来断言字符串不以空格或制表符结尾,并以非空白字符开始匹配

^(?!.*[ \t]$)\S.*$
  • ^
    字符串的开头
  • (?!.[\t]$)
    负向前看,断言右边的内容不是字符串末尾的空格或制表符
  • \S
    匹配非空白字符
  • *
    匹配除换行符以外的任何字符0+次
  • $
    字符串结尾

第一个正则表达式是正确的。
^[^\s].+[^\s]$-为什么不使用它,而是使用一些不等价的东西呢?您的正则表达式可能应该与字符串的开头和结尾相匹配。@VLAZ如何在javascript中使用
^
$
?为什么它不是等价的呢?@Amir Mousavi您实际上只是使用了
^[^\s].+[^\s]$
。和
[^\s].+[^\s]
不是等效的,因为它没有线的起始/结束锚。@epascarello运行良好的代码段,显示了其他内容