मैं वर्तमान में जैसे फ़ोन नंबर प्रदर्शित कर रहा हूं 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)
});
}
लाइव उदाहरण: JSFiddle
मुझे पता है कि यह सीधे सवाल का जवाब नहीं देता है, लेकिन जब मैं जवाब देख रहा था तो यह मेरे द्वारा देखे गए पहले पृष्ठों में से एक था। तो यह जवाब किसी के लिए भी है जो मैं खोज रहा था उसी तरह की खोज कर रहा है।
फोन नंबर को संभालने के लिए एक पुस्तकालय का उपयोग करें। Google द्वारा Libphonenumber आपकी सर्वश्रेष्ठ शर्त है।
// 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
मैं इस पैकेज को सीग्नो द्वारा उपयोग करने की सलाह देता हूं।
मैंने आपको (XXX) XXX-XXX के रूप में यूएस फ़ोन नंबरों को प्रारूपित करने के लिए jsfiddle लिंक प्रदान किया है
$('.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('');
}
});
लाइव उदाहरण: JSFiddle
कुछ इस तरह की कोशिश करो ।।
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
}
}
});
लिबफोनेनंबर-जेएस पर विचार करें ( 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 प्लगइन के माध्यम से ऑटो-फॉर्म फोन नंबरों के लिए रास्ता तय करते समय मुझे यह सवाल मिला। स्वीकृत उत्तर मेरी आवश्यकताओं के लिए आदर्श नहीं था और मूल रूप से पोस्ट किए जाने के बाद से 6 वर्षों में बहुत कुछ हुआ है। मुझे अंततः समाधान मिल गया और मैं इसे यहां पोस्टीरिटी के लिए प्रलेखित कर रहा हूं।
संकट
मैं अपने फ़ोन नंबर html इनपुट फ़ील्ड को उपयोगकर्ता के प्रकारों के रूप में ऑटो-फॉर्मेट (मास्क) मान देना चाहूंगा।
उपाय
Cleave.js की जाँच करें । यह इस समस्या को हल करने के लिए एक बहुत शक्तिशाली / लचीला और आसान तरीका है, और कई अन्य डेटा मास्किंग मुद्दे हैं।
फ़ोन नंबर फ़ॉर्मेट करना उतना ही आसान है:
var cleave = new Cleave('.input-element', {
phone: true,
phoneRegionCode: 'US'
});
हो सकता है यह मदद करेगा
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 मिलेगा