繁体   English   中英

如何在javascript中检查字符串开头是否有空格

[英]How to check whether a string has whitespace at the beginning in javascript

我有一个字符串如下

var str = "  Hello";

我可以得到字符串的第一个字符

var the_char=str.charAt(0);
alert(the_char)
if(the_char === " "){
    alert("first char of the query is space");
    return;
}

但是警报没有弹出。如果字符串的第一个字符是空格,我想弹出警报。我该怎么做?

谢谢

有几种类型的空格。

正则表达式可以让您测试多个...

alert(/^\s/.test(mystring));

^字符将正则表达式锚定到字符串的开头。

\\s将测试空间,制表符,回车符,换行等。


从MDN

\\ s匹配单个空格字符,包括空格,制表符,换页符,换行符。 等效于[ \\f\\n\\r\\t\\v​\ \ ​\᠎\ ​\ \ ​\ \ ​\ \ ​\ \ ​\ \ ​\
\
​\
\
​\ \ ​\ ]

由于JavaScripts String.trim()很好地消除了空白,因此我利用它来创建了startsWithSpace()函数。

var startsWithSpace = function(string) {
  return string.indexOf(string.trim()) != 0;
};

在此实现中,将新行计为空格。

它确实弹出:

的jsfiddle

您可能会抛出一个异常,并且没有陷入此类警报之间的某处,例如此代码,即使x undefined ,它也会访问xx

的jsfiddle

您需要查找并修复该错误,而不是在此处发布的代码可以正常工作。

function haswsatbeginning(str){var re=new RegExp('^[ \\s\u00A0]+','g');return((str+'').replace(re,'')!==str);}
var str = "  Hello";
alert(haswsatbeginning(str)); // alerts true

str = ('{^-^}');
alert(haswsatbeginning(str)); // alerts false

您可以像这样使用startsWith来检查字符串的第一个字符。

var str = "  Hello";
if (str.startsWith(" ")) {
    alert("first char of the query is space");
    return;
}

您在第一个警报后缺少分号。 如果您使用的是Chrome或Firefox,则在提出问题之前,应始终检查控制台是否存在错误。

您可以在if循环内返回任何内容。它会产生语法错误,因此只有您不会弹出。

删除返回声明

var str = "  Hello";

var the_char=str.charAt(0);
         alert(the_char);
         if(the_char === " "){
              alert("first char of the query is space");
             }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM