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

时间:2012-06-01 04:10:04

标签: javascript string whitespace

我有一个字符串如下:

var str = "  Hello";

我可以将字符串的第一个字符作为

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

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

由于

6 个答案:

答案 0 :(得分:5)

有几种类型的空白。

正则表达式会让你测试不止一个......

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

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

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


From MDN

  

\ s匹配单个空格字符,包括空格,制表符,换页符和换行符。相当于[ \f\n\r\t\v​\u00A0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​\u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u2028\u2029​\u202f\u205f​\u3000]

答案 1 :(得分:1)

由于JavaScripts String.trim()很好地摆脱了空白,我利用它创建了一个startsWithSpace()函数。

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

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

答案 2 :(得分:0)

它会弹出:

JSFiddle

即使x.x x undefined,您可能会抛出异常,并且不会在此代码中访问{{1}}之间的某个警报中被捕获:

JSFiddle

您需要追踪并修复该错误,而不是您在此处发布的可正常运行的代码。

答案 3 :(得分:0)

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

答案 4 :(得分:-1)

第一次提醒后你丢失了一个分号。如果您使用的是Chrome或Firefox,则在提出问题之前,应始终检查控制台是否有错误。

答案 5 :(得分:-2)

你不会在if循环中返回任何内容..它会出现语法错误,所以只有你没有弹出...

删除返回语句

var str = "  Hello";

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