You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript实现单输入框实时提取姓名首字母并展示至DIV

Real-Time Name Initials Extraction with JavaScript

Got it, let's build this functionality step by step! Here's a robust implementation that automatically pulls and displays initials as the user types their first and last name—no clickable buttons needed.

HTML Structure

First, we'll set up the basic input field and the container for our initials:

<div class="container">
  <label for="fullName">Enter your full name:</label>
  <input type="text" id="fullName" placeholder="John Doe">
  <div id="initialsDisplay" class="initials">JD</div>
</div>

Basic Styling (Optional)

A little CSS to make it look polished:

.container {
  margin: 20px;
  font-family: Arial, sans-serif;
}

#fullName {
  padding: 8px;
  font-size: 16px;
  width: 300px;
  margin: 10px 0;
}

.initials {
  font-size: 48px;
  font-weight: bold;
  color: #2c3e50;
  border: 2px solid #3498db;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 15px;
}

JavaScript Logic

This is where the magic happens—we'll listen for input changes, split the name, extract initials, and update the display in real time:

// Get references to our elements
const fullNameInput = document.getElementById('fullName');
const initialsDisplay = document.getElementById('initialsDisplay');

// Function to generate and display initials
function updateInitials() {
  // Get the input value and trim whitespace
  const name = fullNameInput.value.trim();
  
  if (!name) {
    // If input is empty, reset to placeholder initials
    initialsDisplay.textContent = 'JD';
    return;
  }

  // Split the name into parts (handles multiple spaces between names)
  const nameParts = name.split(/\s+/).filter(part => part.length > 0);
  
  // Extract first character of each part, uppercase it
  const initials = nameParts.map(part => part[0].toUpperCase()).join('');
  
  // Update the display
  initialsDisplay.textContent = initials;
}

// Listen for input events (fires every time the user types/deletes)
fullNameInput.addEventListener('input', updateInitials);

Key Features

  • Real-time updates: Triggers instantly as the user types or deletes text
  • Handles edge cases:
    • Empty input resets to a default placeholder
    • Ignores extra spaces between names (e.g., "John Doe" still becomes "JD")
    • Works with middle names too (e.g., "John Michael Doe" becomes "JMD")
    • Automatically capitalizes initials regardless of user input case

Just drop all this code into an HTML file and it'll work right away! Test it out with different name formats to see how it handles them.

内容的提问来源于stack exchange,提问作者JustAProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 05:02:40