关于javascript:如何获取字符串的第一个字符?

How to get first character of string?

我有一个字符串,我需要得到它的第一个字符。

1
2
var x = 'somestring';
alert(x[0]); //in ie7 returns undefined

如何修复我的代码?


你想要的是charAt

1
2
var x = 'some string';
alert(x.charAt(0)); // alerts 's'


在javascript中,您可以这样做:

1
alert(x.substring(0,1));


你可以用这些。

所有这些都有点不同所以在条件语句中使用它时要小心。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var string ="hello world";
console.log(string.slice(0,1));     //o/p:- h
console.log(string.charAt(0));      //o/p:- h
console.log(string.substring(0,1)); //o/p:- h
console.log(string.substr(0,1));    //o/p:- h
console.log(string[0]);             //o/p:- h


var string ="";
console.log(string.slice(0,1));     //o/p:- (an empty string)
console.log(string.charAt(0));      //o/p:- (an empty string)
console.log(string.substring(0,1)); //o/p:- (an empty string)
console.log(string.substr(0,1));    //o/p:- (an empty string)
console.log(string[0]);             //o/p:- undefined


X.子串(0,1)


1
2
var x ="somestring"
alert(x.charAt(0));

charat()方法允许您指定所需字符的位置。

您要做的是在数组"x"的位置获取字符,该数组未定义为x不是数组。


您甚至可以使用slice来切断所有其他字符:

1
x.slice(0, 1);


所有方法示例

我添加了一个时间计算,它们之间没有太大的区别,最长的计算总是第一次执行。

第一:string.charAt(index)

Return the caract at the index index

1
2
3
4
5
6
7
var str ="Stack overflow";

console.time("charat");

console.log(str.charAt(0));

console.timeEnd("charat");

第二个:string.substring(start,length);

Return the substring in the string who start at the index start and stop after the length length

这里你只想要第一克拉,所以:start = 0length = 1

1
2
3
4
5
6
7
var str ="Stack overflow";

console.time("substring");

console.log(str.substring(0,1));

console.timeEnd("substring");

备选方案:string[index]

字符串是一个克拉ct数组。所以你可以得到第一克拉,就像数组的第一个单元。

Return the caract at the index index of the string

1
2
3
4
5
6
7
var str ="Stack overflow";

console.time("array");

console.log(str[0]);

console.timeEnd("array");


1
2
3
4
5
var str="stack overflow";

firstChar  = str.charAt(0);

secondChar = str.charAt(1);

在IE6+、FF、Chrome、Safari中测试。


也试试这个:

1
x.substr(0, 1);


埃多克斯1〔2〕

细节

substring(start, end)从"start"和"end"这两个索引之间的字符串中提取字符,不包括"end"本身。

特别注意事项

  • 如果"start"大于"end",则此方法将交换两个参数,即str.substring(1,4)==str.substring(4,1)。
  • 如果"开始"或"结束"小于0,则将其视为0。

简单的方法是

1
2
3
const z ="sdsdsd"

console.log(z[0])    // 's'

使用垃圾


在nodejs中,可以使用缓冲区:

1
2
3
4
let str ="hello world"
let buffer = Buffer.alloc(2, str) // replace 2 by 1 for the first char
console.log(buffer.toString('utf-8')) // display he
console.log(buffer.toString('utf-8').length) // display 2


在jquery中,您可以使用:在类中选择选项:

1
2
3
$('.className').each(function(){
    className.push($("option:selected",this).val().substr(1));
});

在类中用于文本值:

1
2
3
$('.className').each(function(){
    className.push($(this).val().substr(1));
});

文本值的ID中:

1
$("#id").val().substr(1)