[英]How can I insert a character after every n characters in javascript?
[英]How can I insert a character after every 2 characters?
我想在每兩個字符之后插入一個斜杠,但僅在前兩個實例中插入。 每次出現后都會插入以下正則表達式。 有誰知道如何將其限制為兩次? 金額將由用戶通過輸入元素輸入。 因此,如果用戶輸入30032017
,它將類似於以下內容。
function insertSlash(val) {
return val.match(new RegExp('.{1,2}', 'g')).join("/");
}
insertSlash(input);
因此對於第一個字符,用戶將輸入3
。 在下一個輸入中它將為0
。 然后應該插入一個斜線。
然后應返回30/03/2017
。
有兩種方法可以執行此操作,可以使用僅針對這種類型的字符串格式化的正則表達式
function insertSlash(val) { return val.replace(/^(\\d{2})(\\d{2})/, '$1/$2/'); } console.log(insertSlash('30032017'));
或者,您可以使用簡單的替換功能來跟蹤替換計數
function insertSlash(val) { var count = 2; var i = 0; return val.replace(/(\\d{2})/g, function(match, capture) { return (i++ < count) ? capture + '/' : capture; }); } console.log(insertSlash('30032017'));
看來您已經編輯了問題,以包括在用戶鍵入時需要進行此操作的問題。 為此,有一些遮罩插件考慮了插入符的位置,占位符信息,可能值得您花一些時間檢查一下。 我發現這是一個具有React JS組件的組件。 我不能保證,我從未使用過它,但這是一個值得研究的想法。
忽略它可能不匹配,
"30032017".match(new RegExp("(..)(..)(....)")).slice(1).join("/")
match返回的值是匹配組數組。 第一個元素將具有整個匹配的字符串,因此需要將其切出以便我們可以加入。
如果在知道特定字符位置時對字符串進行切片會更容易:
return val.slice(0, 2) + "/" + val.slice(2, 4) + "/" + val.slice(4)
function insertSlash(val) {
return val.substr(0,2)+"/"+val.substr(2,2)+"/"+val.substr(4,4)
}
insertSlash('30032017');
如果要將日期字符串視為實際日期,可以執行以下操作:
const dateString = "30032017" const date = new Date(dateString.slice(4), dateString.slice(3,4), dateString.slice(0,2)) const formattedDateString = date.getUTCFullYear() +"/"+ date.getUTCMonth() +"/"+ date.getUTCDate() console.log(formattedDateString)
如果需要,這將允許您執行任何中間日期操作(相加/相減天/月/年)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.