我想提醒字符串的每个字母,但我不确定如何做到这一点。
如果我有:
var str = 'This is my string';
我希望能够分别提醒T h I s等等。这只是我正在研究的一个想法的开始,但我需要知道如何分别处理每个字母。
我在想,我可能需要在测试字符串的长度后使用分割函数。
我该怎么做呢?
我想提醒字符串的每个字母,但我不确定如何做到这一点。
如果我有:
var str = 'This is my string';
我希望能够分别提醒T h I s等等。这只是我正在研究的一个想法的开始,但我需要知道如何分别处理每个字母。
我在想,我可能需要在测试字符串的长度后使用分割函数。
我该怎么做呢?
当前回答
试试这段代码
function myFunction() {
var text =(document.getElementById("htext").value);
var meow = " <p> <,> </p>";
var i;
for (i = 0; i < 9000; i++) {
text+=text[i] ;
}
document.getElementById("demo2").innerHTML = text;
}
</script>
<p>Enter your text: <input type="text" id="htext"/>
<button onclick="myFunction();">click on me</button>
</p>
其他回答
可能不止是解决了。只是想提供另一个简单的解决方案:
var text = 'uololooo';
// With ES6
[...text].forEach(c => console.log(c))
// With the `of` operator
for (const c of text) {
console.log(c)
}
// With ES5
for (var x = 0, c=''; c = text.charAt(x); x++) {
console.log(c);
}
// ES5 without the for loop:
text.split('').forEach(function(c) {
console.log(c);
});
这里的大多数答案(如果不是全部的话)都是错误的,因为只要字符串中有字符在Unicode BMP(基本多语言平面)之外,它们就会中断。这意味着所有的表情符号都将被破坏。
JavaScript对所有字符串使用UTF-16 Unicode。在UTF-16中,BMP以外的字符由两部分组成,称为“代理对”,这里的大多数答案将单独处理这种对的每个部分,而不是作为单个字符处理。
至少从2016年开始,现代JavaScript的一种方法是使用新的String迭代器。下面是一个来自MDN的例子:
var string = 'A\uD835\uDC68B\uD835\uDC69C\uD835\uDC6A'; For (var v of string) { 警报(v); } / /“A” / /“\ uD835 \ uDC68” / /“B” / /“\ uD835 \ uDC69” / /“C” / /“\ uD835 \ uDC6A”
New JS允许这样做:
const str = 'This is my string';
Array.from(str).forEach(alert);
试试这段代码
function myFunction() {
var text =(document.getElementById("htext").value);
var meow = " <p> <,> </p>";
var i;
for (i = 0; i < 9000; i++) {
text+=text[i] ;
}
document.getElementById("demo2").innerHTML = text;
}
</script>
<p>Enter your text: <input type="text" id="htext"/>
<button onclick="myFunction();">click on me</button>
</p>
可以使用str. charat (index)或str[index]访问单个字符。但是后一种方式不是ECMAScript的一部分,所以你最好使用前一种方式。