Có ai biết thư viện Javascript (ví dụ: gạch dưới, jQuery, MooTools, v.v.) cung cấp phương thức tăng thư không?Phương pháp có thể được sử dụng để tăng các chữ cái là gì?
Tôi muốn để có thể làm điều gì đó như:
"a"++; // would return "b"
Có ai biết thư viện Javascript (ví dụ: gạch dưới, jQuery, MooTools, v.v.) cung cấp phương thức tăng thư không?Phương pháp có thể được sử dụng để tăng các chữ cái là gì?
Tôi muốn để có thể làm điều gì đó như:
"a"++; // would return "b"
function nextChar(c) {
return String.fromCharCode(c.charCodeAt(0) + 1);
}
nextChar('a');
Giải pháp đơn giản, nhưng không xử lý sự xuất hiện của 'z' hoặc 'Z'. – Trent
Bạn có thể thử này
console.log('a'.charCodeAt(0))
Đầu tiên chuyển nó sang số Ascii .. tăng nó .. sau đó chuyển đổi từ Ascii để char ..
var nex = 'a'.charCodeAt(0);
console.log(nex)
$('#btn1').on('click', function() {
var curr = String.fromCharCode(nex++)
console.log(curr)
});
Kiểm tra FIDDLE
Hmm. Cần thêm jQuery. – Jasper
javascript Plain nên làm các trick:
String.fromCharCode('A'.charCodeAt() + 1) // Returns B
Thêm vào tất cả những câu trả lời:
// first code on page
String.prototype.nextChar = function(i) {
var n = i | 1;
return String.fromCharCode(this.charCodeAt(0) + n);
}
String.prototype.prevChar = function(i) {
var n = i | 1;
return String.fromCharCode(this.charCodeAt(0) - n);
}
tôi cần phải sử dụng trình tự của các chữ cái nhiều lần và vì vậy tôi đã thực hiện chức năng này dựa trên câu hỏi SO này. Tôi hy vọng điều này có thể giúp đỡ người khác.
function charLoop(from, to, callback)
{
var i = from.charCodeAt(0);
var to = to.charCodeAt(0);
for(;i<=to;i++) callback(String.fromCharCode(i));
}
Cách sử dụng:
charLoop("A", "K", function(char) {
//char is one letter of the sequence
});
để làm demo. – KNU
gì nếu bức thư đưa ra là z? Đây là một giải pháp tốt hơn. Nó đi A, B, C ... X, Y, Z, AA, AB, ... vv Về cơ bản nó tăng các chữ cái giống như ID cột của bảng tính Excel.
nextChar ('yz'); // returns "ZA"
function nextChar(c) {
var u = c.toUpperCase();
if (same(u,'Z')){
var txt = '';
var i = u.length;
while (i--) {
txt += 'A';
}
return (txt+'A');
} else {
var p = "";
var q = "";
if(u.length > 1){
p = u.substring(0, u.length - 1);
q = String.fromCharCode(p.slice(-1).charCodeAt(0));
}
var l = u.slice(-1).charCodeAt(0);
var z = nextLetter(l);
if(z==='A'){
return p.slice(0,-1) + nextLetter(q.slice(-1).charCodeAt(0)) + z;
} else {
return p + z;
}
}
}
function nextLetter(l){
if(l<90){
return String.fromCharCode(l + 1);
}
else{
return 'A';
}
}
function same(str,char){
var i = str.length;
while (i--) {
if (str[i]!==char){
return false;
}
}
return true;
}
// below is simply for the html sample interface and is unrelated to the javascript solution
var btn = document.getElementById('btn');
var entry = document.getElementById('entry');
var node = document.createElement("div");
node.id = "node";
btn.addEventListener("click", function(){
node.innerHTML = '';
var textnode = document.createTextNode(nextChar(entry.value));
node.appendChild(textnode);
document.body.appendChild(node);
});
<input id="entry" type="text"></input>
<button id="btn">enter</button>
nhận được lỗi "cùng không được xác định". – SeanKendle
Thay đổi 'if (cùng (u, 'Z')) {' thành 'if (u == 'Z') {' và nó hoạt động hoàn hảo, cảm ơn! – SeanKendle
Rất vui khi nó hoạt động và cảm ơn phản hồi. Có lẽ lỗi ban đầu là có bcs chức năng có tiêu đề 'cùng (str, char)' không được dán trong đó? Tôi không biết. –
Con này có hoạt động tốt:
var nextLetter = letter => {
let charCode = letter.charCodeAt(0);
let isCapital = letter == letter.toUpperCase();
if (isCapital == true) {
return String.fromCharCode((charCode - 64) % 26 + 65)
} else {
return String.fromCharCode((charCode - 96) % 26 + 97)
}
}
EXAMPLES
nextLetter("a"); // returns 'b'
nextLetter("z"); // returns 'a'
nextLetter("A"); // returns 'B'
nextLetter("Z"); // returns 'A'
Không hoạt động đối với chữ cái viết hoa –
Bây giờ, nó cũng hoạt động đối với các chữ cái viết hoa :) – NikK
Đây thực sự là cũ. Nhưng tôi cần chức năng này và không có giải pháp nào tối ưu cho trường hợp sử dụng của tôi. Tôi muốn tạo ra một, b, c ... z, aa, ab ... zz, aaa .... Việc đệ quy đơn giản này thực hiện công việc.
function nextChar(str) {
if (str.length == 0) {
return 'a';
}
var charA = str.split('');
if (charA[charA.length - 1] === 'z') {
return nextID(str.substring(0, charA.length - 1)) + 'a';
} else {
return str.substring(0, charA.length - 1) +
String.fromCharCode(charA[charA.length - 1].charCodeAt(0) + 1);
}
};
Tôi không chắc chắn * cú pháp * bạn đang tìm kiếm là có thể, nhưng hoạt động có thể thông qua các phương pháp. – anson
Ứng dụng là gì? – valentinas