2012-06-01 92 views
0

一开始我有一个字符串作为波纹管如何检查字符串是否有空格在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; 
} 

但警报不会弹出。如果字符串的第一个字符是空格,我想弹出警告。如何执行此操作?

谢谢

回答

4

有几种类型的空白。

regex将让你测试不止一台...

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

^字符锚定的正则表达式的字符串的开始。

\s将测试空间,标签,卡拉格回车,换行等。


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]

+0

呃......[我终于做到了](http://meta.stackexchange.com/q/134183/173320)您可能会想要参与功能请求的投票。 – gdoron

-1

您不力返回里面的任何东西,如果环。它提供了语法错误,所以只有你没有得到弹出..

删除return语句

var str = " Hello"; 

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

这段代码不应该工作,你也会丢失一个分号。 – PitaJ

+0

即使分号错过警报没有问题。 –

+1

'return;'语句不是SyntaxError。 – 2012-06-01 04:38:25

0

它确实流行up:

JSFiddle

你可能有一个异常被抛出,而不是在提醒之间的某个地方,就像一只被困在此代码x.x即使xundefined它访问:

JSFiddle

你需要追踪和修复错误,而不是你在这里发布的代码工作正常。

-1

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

+1

这不是真正的JavaScript错误,因为解释器需要把分号放回去。 – Paulpro

+0

http: //jsfiddle.net/Paulpro/MfDzD/ – Paulpro

+0

http://mislav.uniqpath.com/2010/05/semicolons/ 分号是可选的,并且一致性也是可选的 – Ian

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 
1

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

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

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

相关问题