JavaScript中十进制转ASCII及表格特殊记录转正常单词方法咨询
Hey there, let's tackle your two JavaScript questions one by one with practical, actionable code examples:
1. Converting Decimal Numbers to ASCII Characters
In JavaScript, the go-to method for this is String.fromCharCode(). It takes one or more decimal values (corresponding to ASCII code points) and returns the associated character(s).
Basic Usage
- Single character:
const decimal = 65; const asciiChar = String.fromCharCode(decimal); console.log(asciiChar); // Output: "A" - Multiple characters (pass multiple decimal values):
const decimals = [72, 101, 108, 108, 111]; const asciiString = String.fromCharCode(...decimals); console.log(asciiString); // Output: "Hello"
Quick Note
- This works for standard ASCII (0-127) and extended ASCII (128-255) values. For Unicode code points beyond 255, you'd use
String.fromCodePoint()instead, but that's outside the core ASCII scope.
2. Converting Special Formatted Words to Normal Words
Since "special formatted" can cover a few common scenarios (full-width characters, messy casing, embedded symbols, HTML entities, etc.), I'll break down the most frequent cases with tailored solutions:
Scenario 1: Full-Width to Half-Width Characters
If your words use full-width (East Asian style) letters/numbers, use this function to convert them:
function fullWidthToHalfWidth(str) { return str.replace(/[\uFF01-\uFF5E]/g, char => { // Shift full-width code point to half-width equivalent return String.fromCharCode(char.charCodeAt(0) - 0xFEE0); }).replace(/\uFF00/g, ' '); // Handle full-width space separately } // Example usage: const fullWidthStr = "Hello!123"; console.log(fullWidthToHalfWidth(fullWidthStr)); // Output: "Hello! 123"
Scenario 2: Clean Up Unwanted Special Symbols
To strip irrelevant symbols and keep only letters, numbers, spaces, and basic punctuation:
function cleanSpecialSymbols(str) { // Adjust the regex character set based on what you want to retain return str.replace(/[^a-zA-Z0-9\s.,!?]/g, ''); } // Example usage: const messyStr = "H@e#l$l%o^1&2*3"; console.log(cleanSpecialSymbols(messyStr)); // Output: "Hello 123"
Scenario 3: Fix Inconsistent Casing
If words have random capitalization, use these snippets to normalize:
- Make first letter of each word uppercase, rest lowercase:
function normalizeCasing(str) { return str.toLowerCase().replace(/\b\w/g, char => char.toUpperCase()); } // Example usage: const messyCaseStr = "hElLo wOrLd"; console.log(normalizeCasing(messyCaseStr)); // Output: "Hello World"
Scenario 4: Decode HTML Entities
If your words are encoded with HTML entities (like & for &), use this safe method:
function decodeHtmlEntities(str) { const parser = new DOMParser(); const doc = parser.parseFromString(str, "text/html"); return doc.body.textContent; } // Example usage: const encodedStr = "H&e&l&l&o"; console.log(decodeHtmlEntities(encodedStr)); // Output: "H&e&l&l&o"
Pick the scenario that matches your specific "special format" issue, or combine functions if you need to fix multiple problems at once!
内容的提问来源于stack exchange,提问作者Kai Tera

