慕無忌1623718
2023-11-12 22:29:42
我正在嘗試在 JavaScript 中用破折號/連字符替換空格字符。我讓大部分代碼正常工作,以便它在字符之間的每個空格后添加破折號(我不想連續(xù)使用 2 個破折號/連字符),但是一旦我擊中另一個字符,破折號就會消失。也許我的代碼格式不正確?我正在嘗試創(chuàng)建類似 LinkedIn 的東西,當(dāng)您創(chuàng)建公司頁面時,它會要求您創(chuàng)建公司 URL。當(dāng)您點擊空格時,它會將其替換為破折號/連字符。function addHyphen(element) { let ele = document.getElementById(element.id); ele = ele.value.split('-').join(''); // Remove dash (-) if mistakenly entered. let finalVal = ele.replace(/\s+/g, '-'); document.getElementById(element.id).value = finalVal; document.getElementById("result").innerHTML = finalVal;}<!DOCTYPE html><html><head> <title>Add Hyphen to a text using JavaScript</title></head><body> <div> <input type="text" id="tbNum" onkeyup="addHyphen(this)" placeholder="Type some values here" /> </div> <div> <label id="result"></label> </div></body></html>
1 回答

MM們
TA貢獻(xiàn)1886條經(jīng)驗 獲得超2個贊
你可以做這樣的事情:
const $result = document.getElementById("result");
function addHyphen($el) {
$el.value = hyphenize($el.value);
$result.innerHTML = $el.value;
}
function hyphenize(str) {
return str
.replace(/[^a-z0-9]/gi, '-') // Replace non-alphanumerical chars with '-'
.replace(/-+/g, '-'); // Deduplicate them
}
<div><input type="text" id="tbNum" onkeyup="addHyphen(this)" placeholder="Type some values here" /></div>
<div><label id="result"></label></div>
添加回答
舉報
0/150
提交
取消