计算字符串第一个字符前多少个空格的最佳方法是什么?
str0 = 'nospaces even with other spaces still bring back zero';
str1 = ' onespace do not care about other spaces';
str2 = ' twospaces';
答案 0 :(得分:33)
' foo'.search(/\S/); // 4, index of first non whitespace char
编辑: 您可以搜索"非空白字符,或输入结束"避免检查-1。
' '.search(/\S|$/)
答案 1 :(得分:5)
使用以下正则表达式:
/^\s*/
String.prototype.match()
中的将导致一个包含单个项目的数组,其长度将告诉您在字符串开头有多少个空格字符。
pttrn = /^\s*/;
str0 = 'nospaces';
len0 = str0.match(pttrn)[0].length;
str1 = ' onespace do not care about other spaces';
len1 = str1.match(pttrn)[0].length;
str2 = ' twospaces';
len2 = str2.match(pttrn)[0].length;
请记住,这也会匹配制表符,每个制表符都会计为一个。
答案 2 :(得分:4)
str0 = 'nospaces';
str1 = ' onespace do not care about other spaces';
str2 = ' twospaces';
arr_str0 = str0.match(/^[\s]*/g);
count1 = arr_str0[0].length;
console.log(count1);
arr_str1 = str1.match(/^[\s]*/g);
count2 = arr_str1[0].length;
console.log(count2);
arr_str2 = str2.match(/^[\s]*/g);
count3 = arr_str2[0].length;
console.log(count3);
下面: 我在字符串的第一个字符前使用正则表达式来计算空格数。
^ : start of string.
\s : for space
[ : beginning of character group
] : end of character group
答案 3 :(得分:1)
您可以使用trimLeft(),如下所示
myString.length - myString.trimLeft().length
证明它有效:
let myString = ' hello there '
let spacesAtStart = myString.length - myString.trimLeft().length
console.log(spacesAtStart)
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/TrimLeft
答案 4 :(得分:0)
str.match(/^\s*/)[0].length
str是字符串。