【发布时间】:2011-03-26 12:33:01
【问题描述】:
我有一个字符串,我需要获取它的第一个字符。
var x = 'somestring';
alert(x[0]); //in ie7 returns undefined
如何修复我的代码?
【问题讨论】:
-
小心点 - 你可能没有要提取的字符!
标签: javascript
我有一个字符串,我需要获取它的第一个字符。
var x = 'somestring';
alert(x[0]); //in ie7 returns undefined
如何修复我的代码?
【问题讨论】:
标签: javascript
你想要的是charAt。
var x = 'some string';
alert(x.charAt(0)); // alerts 's'
【讨论】:
x.charAt() 也将返回第一个字符,就好像没有将索引传递给此方法一样,它将假定它为0。
"?".charAt(0) 返回 "\ud83d","café".charAt(3) 返回 e 并去掉重音等。stackoverflow.com/questions/38345372/… 有一些信息和一个很好的选择(使用库)
x[0] 与 x.charAt(0) 一样有效,除非您关心 IE 7
在 JavaScript 中你可以这样做:
const x = 'some string';
console.log(x.substring(0, 1));
【讨论】:
x.slice(0,1) 更短。要获取最后一个字符,只需使用:x.slice(-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
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
【讨论】:
const x = 'some string';
console.log(x.substring(0, 1));
【讨论】:
所有方法的示例
第一:string.charAt(index)
返回索引
index处的caract
var str = "Stack overflow";
console.log(str.charAt(0));
第二:string.substring(start,length);
返回字符串中从索引
start开始并在长度length之后停止的子字符串
这里你只想要第一个字符:start = 0 和 length = 1
var str = "Stack overflow";
console.log(str.substring(0,1));
替代方案:string[index]
字符串是一个字符数组。所以你可以像数组的第一个单元格一样获得第一个字符。
返回字符串索引
index处的字符
var str = "Stack overflow";
console.log(str[0]);
【讨论】:
var x = "somestring"
alert(x.charAt(0));
charAt() 方法允许你指定你想要的字符的位置。
您试图做的是在数组“x”的位置获取字符,该字符未定义为 X 不是数组。
【讨论】:
您甚至可以使用slice 来截断所有其他字符:
x.slice(0, 1);
【讨论】:
var str="stack overflow";
firstChar = str.charAt(0);
secondChar = str.charAt(1);
在 IE6+、FF、Chrome、safari 中测试。
【讨论】:
indexOf 在 IE8 中不起作用,这很重要对我来说。我实际上开始搜索 charAt 兼容性,直到我在这里看到这个答案。
也试试这个:
x.substr(0, 1);
【讨论】:
看来我迟到了,但请尝试以下解决方案,我个人认为这是最佳解决方案:
var x = "testing sub string"
alert(x[0]);
alert(x[1]);
输出应显示具有以下值的警报: “t” "e"
【讨论】:
x.substring(0,1)
substring(start, end) 从字符串中提取字符,位于两个索引“start”和“end”之间,不包括“end”本身。
【讨论】:
你可以这样使用:
'Hello Mr Been'.split(' ').map( item => item.toUpperCase().substring(0, 1)).join(' ');
【讨论】:
在 Nodejs 中你可以使用 Buffer :
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
【讨论】:
charAt() 如果有父属性则不起作用
前parent.child.chartAt(0)
使用parent.child.slice(0, 1)
【讨论】:
已经 10 年了还没有提到答案RegExp。
var x = 'somestring';
console.log(x.match(/./)[0]);
【讨论】:
在 JQuery 中,您可以使用: 在类中选择选项:
$('.className').each(function(){
className.push($("option:selected",this).val().substr(1));
});
类中的文本值:
$('.className').each(function(){
className.push($(this).val().substr(1));
});
在 ID 中为文本值:
$("#id").val().substr(1)
【讨论】:
你也可以使用:
var x = "somestring";
console.log(x.split("")[0]); // output "s"
这应该适用于旧版浏览器。
【讨论】: