আমি বর্তমানে ফোন নম্বর প্রদর্শন করছি 2124771000। যাইহোক, আমি নম্বর প্রয়োজন, আরো পাঠযোগ্য আকারে ফর্ম্যাট করা উদাহরণস্বরূপ: 212-477-1000। এখানে আমার বর্তমান HTML:
<p class="phone">2124771000</p>
আমি বর্তমানে ফোন নম্বর প্রদর্শন করছি 2124771000। যাইহোক, আমি নম্বর প্রয়োজন, আরো পাঠযোগ্য আকারে ফর্ম্যাট করা উদাহরণস্বরূপ: 212-477-1000। এখানে আমার বর্তমান HTML:
<p class="phone">2124771000</p>
উত্তর:
সহজ: http://jsfiddle.net/Xxk3F/3/
$('.phone').text(function(i, text) {
return text.replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3');
});
বা: http://jsfiddle.net/Xxk3F/1/
$('.phone').text(function(i, text) {
return text.replace(/(\d\d\d)(\d\d\d)(\d\d\d\d)/, '$1-$2-$3');
});
দ্রষ্টব্য: ইনপুট উপাদানগুলিতে .text () পদ্ধতি ব্যবহার করা যাবে না। ইনপুট ফিল্ড পাঠ্যের জন্য, .val () পদ্ধতিটি ব্যবহার করুন।
/(\d{3})?(\d{3})(\d{4})$/কোনও
$('#x_phone').on('keypress blur',function() { var ph = $(this).val(); var temp = ph.replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3'); $(this).val(temp); //alert(temp); });
var phone = '2124771000',
formatted = phone.substr(0, 3) + '-' + phone.substr(3, 3) + '-' + phone.substr(6,4)
আপনি খাঁটি পূর্ণসংখ্যার সাথে কাজ করছেন তা নিশ্চিত করতে ভুলবেন না।
var separator = '-';
$( ".phone" ).text( function( i, DATA ) {
DATA
.replace( /[^\d]/g, '' )
.replace( /(\d{3})(\d{3})(\d{4})/, '$1' + separator + '$2' + separator + '$3' );
return DATA;
});
এই উত্তরগুলির একটি সংমিশ্রণ এখানে। এটি ইনপুট ক্ষেত্রগুলির জন্য ব্যবহার করা যেতে পারে। 7 এবং 10 সংখ্যা দীর্ঘ লম্বা ফোন নম্বরগুলির সাথে ডিল করুন।
// Used to format phone number
function phoneFormatter() {
$('.phone').on('input', function() {
var number = $(this).val().replace(/[^\d]/g, '')
if (number.length == 7) {
number = number.replace(/(\d{3})(\d{4})/, "$1-$2");
} else if (number.length == 10) {
number = number.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3");
}
$(this).val(number)
});
}
সরাসরি উদাহরণ: জেএসফিডাল
আমি জানি এটি সরাসরি প্রশ্নের উত্তর দেয় না, তবে যখন আমি উত্তরগুলি খুঁজছিলাম তখন এটি আমার প্রথম পৃষ্ঠাগুলির মধ্যে একটি ছিল। সুতরাং এই উত্তরটি যার জন্য আমি অনুসন্ধান করছিলাম তার অনুরূপ কিছু অনুসন্ধান করছে।
ফোন নম্বর হ্যান্ডেল করতে একটি লাইব্রেরি ব্যবহার করুন। গুগলের লিবিফোনেনবার আপনার সেরা বাজি bet
// Require `PhoneNumberFormat`.
var PNF = require('google-libphonenumber').PhoneNumberFormat;
// Get an instance of `PhoneNumberUtil`.
var phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();
// Parse number with country code.
var phoneNumber = phoneUtil.parse('202-456-1414', 'US');
// Print number in the international format.
console.log(phoneUtil.format(phoneNumber, PNF.INTERNATIONAL));
// => +1 202-456-1414
আমি এই প্যাকেজটি সিগনো দ্বারা ব্যবহার করার পরামর্শ দিচ্ছি।
ইউএস ফোন নম্বরগুলিকে (এক্সএক্সএল) এক্সএক্সএলএক্সএক্সএক্স হিসাবে ফর্ম্যাট করার জন্য আমি জেফফিল লিঙ্ক সরবরাহ করেছি
$('.class-name').on('keypress', function(e) {
var key = e.charCode || e.keyCode || 0;
var phone = $(this);
if (phone.val().length === 0) {
phone.val(phone.val() + '(');
}
// Auto-format- do not expose the mask as the user begins to type
if (key !== 8 && key !== 9) {
if (phone.val().length === 4) {
phone.val(phone.val() + ')');
}
if (phone.val().length === 5) {
phone.val(phone.val() + ' ');
}
if (phone.val().length === 9) {
phone.val(phone.val() + '-');
}
if (phone.val().length >= 14) {
phone.val(phone.val().slice(0, 13));
}
}
// Allow numeric (and tab, backspace, delete) keys only
return (key == 8 ||
key == 9 ||
key == 46 ||
(key >= 48 && key <= 57) ||
(key >= 96 && key <= 105));
})
.on('focus', function() {
phone = $(this);
if (phone.val().length === 0) {
phone.val('(');
} else {
var val = phone.val();
phone.val('').val(val); // Ensure cursor remains at the end
}
})
.on('blur', function() {
$phone = $(this);
if ($phone.val() === '(') {
$phone.val('');
}
});
সরাসরি উদাহরণ: জেএসফিডাল
এরকম কিছু চেষ্টা করে দেখুন ..
jQuery.validator.addMethod("phoneValidate", function(number, element) {
number = number.replace(/\s+/g, "");
return this.optional(element) || number.length > 9 &&
number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");
$("#myform").validate({
rules: {
field: {
required: true,
phoneValidate: true
}
}
});
Libphonenumber-js ( https://github.com/halt-hammerzeit/libphonenumber-js ) বিবেচনা করুন যা সম্পূর্ণ এবং বিখ্যাত লাইবফোনেম্বরের একটি ছোট সংস্করণ।
দ্রুত এবং নোংরা উদাহরণ:
$(".phone-format").keyup(function() {
// Don't reformat backspace/delete so correcting mistakes is easier
if (event.keyCode != 46 && event.keyCode != 8) {
var val_old = $(this).val();
var newString = new libphonenumber.asYouType('US').input(val_old);
$(this).focus().val('').val(newString);
}
});
(আপনি যদি একটি লাইব্রেরি ডাউনলোড এড়ানোর জন্য কোনও রেজেক্স ব্যবহার করেন তবে ব্যাকস্পেসে পুনরায় ফর্ম্যাট এড়ানো / মুছুন টাইপগুলি সংশোধন করা আরও সহজ করে দেবে))
একটি বিকল্প সমাধান:
function numberWithSpaces(value, pattern) {
var i = 0,
phone = value.toString();
return pattern.replace(/#/g, _ => phone[i++]);
}
console.log(numberWithSpaces('2124771000', '###-###-####'));
JQuery প্লাগইনটির মাধ্যমে ফোন নম্বরগুলি অটো-ফর্ম্যাট করার উপায়ের জন্য গুগল করার সময় আমি এই প্রশ্নটি পেয়েছি। গৃহীত উত্তরটি আমার প্রয়োজনের জন্য আদর্শ ছিল না এবং মূলত পোস্ট হওয়ার পরে years বছরে অনেক কিছু ঘটেছে। আমি শেষ পর্যন্ত সমাধানটি খুঁজে পেয়েছি এবং এটি উত্তরসূরির জন্য এখানে ডকুমেন্ট করছি।
সমস্যা
আমি আমার ফোন নম্বরটি এইচটিএমএল ইনপুট ফিল্ডটি ব্যবহারকারী ধরণের হিসাবে অটো-ফর্ম্যাট (মাস্ক) করতে চাই।
সমাধান
পরীক্ষা করে দেখুন Cleave.js । এই সমস্যাটি সমাধান করার এটি একটি খুব শক্তিশালী / নমনীয় এবং সহজ উপায় এবং অন্যান্য অনেক ডেটা মাস্কিংয়ের সমস্যা।
একটি ফোন নম্বর ফর্ম্যাট করা যেমন সহজ:
var cleave = new Cleave('.input-element', {
phone: true,
phoneRegionCode: 'US'
});
উপরে ক্রুজ নুনজের সমাধান থেকে সংশোধিত একটি সমাধান এখানে দেওয়া হল ।
// Used to format phone number
function phoneFormatter() {
$('.phone').on('input', function() {
var number = $(this).val().replace(/[^\d]/g, '')
if (number.length < 7) {
number = number.replace(/(\d{0,3})(\d{0,3})/, "($1) $2");
} else if (number.length <= 10) {
number = number.replace(/(\d{3})(\d{3})(\d{1,4})/, "($1) $2-$3");
} else {
// ignore additional digits
number = number.replace(/(\d{3})(\d{1,3})(\d{1,4})(\d.*)/, "($1) $2-$3");
}
$(this).val(number)
});
};
$(phoneFormatter);
এই সমাধানটিতে, ব্যবহারকারী কতগুলি সংখ্যা প্রবেশ করিয়ে দেয় না কেন বিন্যাস প্রয়োগ করা হয়। (নুনসের সমাধানে, ফর্ম্যাটিংটি তখনই প্রয়োগ করা হয় যখন ঠিক 7 বা 10 ডিজিট প্রবেশ করা হয়))
10-সংখ্যার মার্কিন ফোন নম্বর প্রবেশ করানোর জন্য এটির জন্য জিপ কোড প্রয়োজন।
উভয় সমাধান, তবে ইতিমধ্যে প্রবেশ করা অঙ্কগুলি সম্পাদনা করা সমস্যাযুক্ত, কারণ টাইপ করা অঙ্কগুলি সর্বদা শেষের দিকে যুক্ত হয়।
আমি পরিবর্তে, নীচে উল্লিখিত শক্তিশালী jQuery মাস্ক প্লাগিন কোডটি সুপারিশ করছি:
আমি ব্যবহার সুপারিশ jQuery এর মাস্ক প্লাগইন (পৃষ্ঠা লাইভ উদাহরণ আছে) GitHub উপর ।
এই লিঙ্কগুলির কীভাবে ব্যবহার করবেন সে সম্পর্কে ন্যূনতম ব্যাখ্যা রয়েছে:
সিডিএন
কোড ইনস্টল / হোস্টিংয়ের পরিবর্তে, আপনি jQuery মাস্ক প্লাগইনটির জন্য স্ক্রিপ্টের সিডিএন লিঙ্কের একটি লিঙ্ক যুক্ত করতে পারেন
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.min.js" integrity="sha512-pHVGpX7F/27yZ0ISY+VVjyULApbDlD0/X0rgGbTqCE7WFW5MezNTWG/dnhtbBuICzsd0WQPgpE4REBLv+UqChw==" crossorigin="anonymous"></script>
বা
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.js" integrity="sha512-pHVGpX7F/27yZ0ISY+VVjyULApbDlD0/X0rgGbTqCE7WFW5MezNTWG/dnhtbBuICzsd0WQPgpE4REBLv+UqChw==" crossorigin="anonymous"></script>
আপনি যদি কোনও ওয়ার্ডপ্রেস সাইটে যোগাযোগ ফর্ম plugin প্লাগইন ব্যবহার করছেন তবে ফর্ম ক্ষেত্রগুলি নিয়ন্ত্রণ করার সবচেয়ে সহজ বিকল্পটি যদি আপনি কেবল আপনার ইনপুট ক্ষেত্রে এটির যত্ন নিতে কোনও ক্লাস যুক্ত করতে পারেন।
মাস্কস ফর্ম ফিল্ডস প্লাগইন হ'ল একটি বিকল্প যা এটি করা সহজ করে তোলে।
আমি এই বিকল্পটি পছন্দ করি, যেমন অভ্যন্তরীণভাবে এটি উপরে উল্লিখিত jQuery মাস্ক প্লাগইন থেকে কোডের একটি ছোট সংস্করণ এম্বেড করে ।
একটি পরিচিতি ফর্ম 7 ফর্ম ব্যবহারের উদাহরণ:
<label> Your Phone Number (required)
[tel* customer-phone class:phone_us minlength:14 placeholder "(555) 555-5555"]
</label>
এখানে গুরুত্বপূর্ণ অংশটি হ'ল class:phone_us।
মনে রাখবেন যে আপনি minlength/ ব্যবহার করলে maxlength, দৈর্ঘ্যে অবশ্যই অঙ্কগুলি ছাড়াও মুখোশ অক্ষর অন্তর্ভুক্ত থাকে।
নিম্নলিখিত ইভেন্ট হ্যান্ডলারটি প্রয়োজনীয় কাজটি করা উচিত:
$('[name=mobilePhone]').on('keyup', function(e){
var enteredNumberStr=this.$('[name=mobilePhone]').val(),
//Filter only numbers from the input
cleanedStr = (enteredNumberStr).replace(/\D/g, ''),
inputLength=cleanedStr.length,
formattedNumber=cleanedStr;
if(inputLength>3 && inputLength<7) {
formattedNumber= cleanedStr.substr(0,3) + '-' + cleanedStr.substr(3,inputLength-1) ;
}else if (inputLength>=7 && inputLength<10) {
formattedNumber= cleanedStr.substr(0,3) + '-' + cleanedStr.substr(3,3) + '-' + cleanedStr.substr(6,inputLength-1);
}else if(inputLength>=10) {
formattedNumber= cleanedStr.substr(0,3) + '-' + cleanedStr.substr(3,3) + '-' + cleanedStr.substr(6,inputLength-1);
}
console.log(formattedNumber);
this.$('[name=mobilePhone]').val(formattedNumber);
});
ক্রুজ নুনেজ কোডটি প্রসারিত করতে এবং ক্রমাগত বিন্যাস যুক্ত করতে কিছু আন্তর্জাতিক ফোন নম্বর ফর্ম্যাট অন্তর্ভুক্ত করুন।
$('#phone').on('input', function() {
var number = $(this).val().replace(/[^\d]/g, '');
if (number.length == 3) {
number = number.replace(/(\d{3})/, "$1-");
} else if (number.length == 4) {
number = number.replace(/(\d{3})(\d{1})/, "$1-$2");
} else if (number.length == 5) {
number = number.replace(/(\d{3})(\d{2})/, "$1-$2");
} else if (number.length == 6) {
number = number.replace(/(\d{3})(\d{3})/, "$1-$2-");
} else if (number.length == 7) {
number = number.replace(/(\d{3})(\d{3})(\d{1})/, "$1-$2-$3");
} else if (number.length == 8) {
number = number.replace(/(\d{4})(\d{4})/, "$1-$2");
} else if (number.length == 9) {
number = number.replace(/(\d{3})(\d{3})(\d{3})/, "$1-$2-$3");
} else if (number.length == 10) {
number = number.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3");
} else if (number.length == 11) {
number = number.replace(/(\d{1})(\d{3})(\d{3})(\d{4})/, "$1-$2-$3-$4");
} else if (number.length == 12) {
number = number.replace(/(\d{2})(\d{3})(\d{3})(\d{4})/, "$1-$2-$3-$4");
}
$(this).val(number);
});
এই সাহায্য করবে হতে পারে
var countryCode = +91;
var phone=1234567890;
phone=phone.split('').reverse().join('');//0987654321
var formatPhone=phone.substring(0,4)+'-';//0987-
phone=phone.replace(phone.substring(0,4),'');//654321
while(phone.length>0){
formatPhone=formatPhone+phone.substring(0,3)+'-';
phone=phone.replace(phone.substring(0,3),'');
}
formatPhone=countryCode+formatPhone.split('').reverse().join('');
আপনি + 91-123-456-7890 পাবেন