[英]Javascript: add integer after second character of string
我的CMS将字符串导出到span元素中,如下所示:
<span class="starting-hour 0900">0900</span> - <span class="ending-hour 1900">1900</span>
我需要将0900和1900作为一个类,因此可以向其中添加一些CSS来填充一个栏。 这工作正常,但也将其导出为开始时间和结束时间,因此您在前端看到“ 0900”和“ 1900”。 我想将这些字符串拆分开,以便可以在使用Javascript的第二个整数之后添加一个“:”。 因此,以这种方式,字符串在前端显示为:“ 09:00”和“ 19:00”。
我对Javascript的了解非常基础,所以我不知道如何开始。 帮助将不胜感激。
创建一个可重用的函数,该函数将返回span
值的小时表示形式:
function getHours(val){ return val.substr(0,2)+':'+val.substr(2,4); } var start = document.querySelector('.starting-hour').innerText; document.querySelector('.starting-hour').innerText = getHours(start); var end = document.querySelector('.ending-hour').innerText; document.querySelector('.ending-hour').innerText = getHours(end);
<span class="starting-hour 0900">0900</span> - <span class="ending-hour 1900">1900</span>
但是,如果您的跨度中没有正好四个字符长的hhhh
,请使用以下命令:
function getHours(val){ return val.substr(0,val.length-2)+':'+val.substr(val.length-2,val.length); } var start = document.querySelector('.starting-hour').innerText; document.querySelector('.starting-hour').innerText = getHours(start); var end = document.querySelector('.ending-hour').innerText; document.querySelector('.ending-hour').innerText = getHours(end);
<span class="starting-hour 0900">900</span> - <span class="ending-hour 1900">1000</span>
您可以选择带有类的所有元素,然后像下面这样添加
document.querySelectorAll('.starting-hour, .ending-hour').forEach(e => { e.innerText = e.innerText.padStart(4, 0); e.innerText = e.innerText.substring(0, 2) + ':' + e.innerText.substring(2) })
<span class="starting-hour 0900">0900</span> - <span class="ending-hour 1900">1900</span> <span class="starting-hour 0900">900</span> - <span class="ending-hour 1900">1900</span>
从Ankit的答案中,我使代码几乎没有dynamic
来满足4 digits
和3 digits
时间示例,并添加了两个代码。
function getHours(val){ return val.substr(0,val.length - 2)+':'+val.substr(val.length - 2,val.length); } var start = document.querySelector('.starting-hour').innerHTML; document.querySelector('.starting-hour').innerHTML = getHours(start); var end = document.querySelector('.ending-hour').innerHTML; document.querySelector('.ending-hour').innerHTML = getHours(end); var start = document.querySelector('.starting-hour-two').innerHTML; document.querySelector('.starting-hour-two').innerHTML = getHours(start); var end = document.querySelector('.ending-hour-two').innerHTML; document.querySelector('.ending-hour-two').innerHTML = getHours(end);
<span class="starting-hour 0900">0900</span> - <span class="ending-hour 1900">1900</span> <br> <br> <span class="starting-hour-two 900">900</span> - <span class="ending-hour-two 100">100</span>
function getHours(val){ return val.substr(0,val.length - 2)+':'+val.substr(val.length - 2,val.length); } var start = document.querySelector('.starting-hour').innerHTML; document.querySelector('.starting-hour').innerHTML = getHours(start); var end = document.querySelector('.ending-hour').innerHTML; document.querySelector('.ending-hour').innerHTML = getHours(end); var start = document.querySelector('.starting-hour-two').innerHTML; document.querySelector('.starting-hour-two').innerHTML = getHours(start); var end = document.querySelector('.ending-hour-two').innerHTML; document.querySelector('.ending-hour-two').innerHTML = getHours(end);
<span class="starting-hour 0900">0900</span> - <span class="ending-hour 1900">1900</span> <span class="starting-hour-two 900">900</span> - <span class="ending-hour-two 100">100</span>
由于您的时间始终为4个字符,因此可以很容易地将字符串切成薄片,放在:中,然后将它们放在一起。
var str1 = "0900".slice(0,2);
var str2 = "0900".slice(2,4);
var time = str1 + ":" + str2;
alert(time);
addColon
函数接受一个element
并将其innerText
设置为其自身,但在最后两位数字之前插入一个冒号。
使用任何想要选择span
元素并将其传递给addColon
。 我已经使用了querySelector
和forEach
迭代器。
const addColon = el => el.innerText = el.innerText.replace(/(\\d){2}$/, ":$&"); const timeStamps = document.querySelectorAll("span[class*='-hour']"); timeStamps.forEach(stamp => addColon(stamp));
<span class="starting-hour 0900">0900</span> - <span class="ending-hour 1900">1900</span>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.