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

Var x = 'somestring'; 警报(x [0]);//在ie7中返回undefined

如何修复我的代码?


当前回答

你甚至可以使用切片切断所有其他字符:

x.slice(0, 1);

其他回答

你可以用任何一个。

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

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 console.log(string.at(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 console.log(string.at(0)); //o/p:- undefined

由于每个字符串都是一个数组,可能最简洁的解决方案是使用新的展开操作符:

const x = 'somestring'
const [head, ...tail] = x
console.log(head) // 's'

额外的好处是你现在可以访问整个字符串,但第一个字符使用join(")在尾部:

console.log(tail.join('')) // 'omestring'

你也可以试试这个:

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

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

你要做的是获取数组x的位置上的字符,它没有定义为x不是数组。

charAt会给出错误的Unicode结果。使用Array.from:

Array.from('some string')[0];