2

我有一个字符串如下

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

7 回答 7

9

有几种类型的空白。

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

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

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

\s测试空格、制表符、回车、换行等。


来自 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]

于 2012-06-01T04:13:36.177 回答
2

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

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

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

于 2016-08-03T18:26:19.710 回答
0

它确实弹出:

JSFiddle

您可能会抛出一个异常,并且不会在警报之间的某处被捕获,例如此代码中的访问x.x,即使xundefined

JSFiddle

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

于 2012-06-01T04:14:10.660 回答
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
于 2012-06-01T04:17:41.853 回答
0

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

var str = "  Hello";
if (str.startsWith(" ")) {
    alert("first char of the query is space");
    return;
}
于 2021-12-04T05:15:01.240 回答
-1

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

于 2012-06-01T04:15:34.920 回答
-2

你在 if 循环中返回任何东西..它给出了语法错误,所以只有你没有弹出..

删除return语句

var str = "  Hello";

var the_char=str.charAt(0);
         alert(the_char);
         if(the_char === " "){
              alert("first char of the query is space");
             }
于 2012-06-01T04:13:41.817 回答