جدا کردن سه رقمی عددها با جاوااسکریپت

با کمک این کدهای جاوااسکریپت می‌توانید عددها را سه رقم، سه‌رقم با کمک ویرگول از یکدیگر جدا کنید:

function addComma( str ) {
	var objRegex = new RegExp( '(-?[0-9]+)([0-9]{3})' );
 
	while( objRegex.test( str ) ) {
		str = str.replace( objRegex, '$1,$2' );
	}
 
	return str;
}

تابع زیر هم می‌تواند برای حذف ویرگول از عددها مورد استفاده قرار بگیرد:

تابع به شکل کوتاه‌تر توسط دوست گرامی جناب «فواد» در کامنت‌ها:

function removeComma( str ) {
	return str.replace( /,/g, '' );
}

شکل قدیمی و بلند‌تر:

function removeComma( str ) {
	var myString = '',
		chrCode;
 
	for( var i = str.length - 1; i >= 0; --i ) {
		chrCode = str.charCodeAt( i );
 
		// 44 = comma
		if( chrCode != 44 ) {
			myString = String.fromCharCode( chrCode ) + myString;
		}
 
	}
 
	return myString;
}

برای آنکه یک فیلد متنی در هنگام خروج مکان‌نما به صورت خودکار اعداد را جدا کند و در هنگام ورود مکان‌نما عدد را به صورت عادی برگرداند از کدهای موجود در مثال زیر استفاده کنید:

<input type="text"
	onblur="this.value = addComma( this.value );"
	onfocus="this.value = removeComma( this.value );" />
این نوشته در برنامه‌نویسی, جاوااسکریپت ارسال شده است. افزودن پیوند یکتا به علاقه‌مندی‌ها.

۱۶ دیدگاه برای جدا کردن سه رقمی عددها با جاوااسکریپت

  1. rezaei می‌گوید:

    thanks a lot

  2. سهرابلو می‌گوید:

    سپاس از اسکریپت جالب و کاربردیتون

    بهترین کد و کوتاه ترین کدی بود که دیدم.

  3. فواد می‌گوید:

    سلام آقا امیر… ممنون از اسکریپتت
    این متد دومی رو میشه خلاصه ترش کرد:

    function removeComma( str ) {
    	return str.replace( /,/g, '' );
    }
  4. cool می‌گوید:

    کد بسار مفید و جالبی بود.یه سوالی هم داشتم.چطوری میتونم اعداد یا کاراکترهایی مثه [ را جایگزین یه سری دیگه بکنم؟

  5. ایمان می‌گوید:

    خیلی کمک کرد، ممنون

  6. مهدی جوینی می‌گوید:

    با سلام
    من می خوام Function AddCama با Onkeyup کار کنه اگه میشه لطفا راهنمایی کنید

    • امیرمسعود ایرانی می‌گوید:

      سلام

      این تابع برای کاری که شما می‌خواهید انجام بدهید مناسب نیست
      چون کنترلی روی محل مکان‌نما نداره
      برای کار شما باید تغییراتی توی کد داده بشه که متاسفانه بنده الان فرصت کافی برای این کار ندارم
      با سپاس

  7. reza می‌گوید:

    ممنون عالی بود

  8. آرمان می‌گوید:

    با تشکر، کد کار راه اندازی بود ، مرسی

  9. پونه می‌گوید:

    یک عاااالمه مرسییی
    خسلییی کمک کردید

  10. mahdi می‌گوید:

    نمیدونم چرا تو دیتابیس فقط سه رقم رو ذخیره میکنه

    • امیرمسعود ایرانی می‌گوید:

      اگر فیلد شما در پایگاه داده، عددی باشد، وقتی اولین ویرگول را مشاهده می‌کند، ادامه را بررسی نمی‌کند و تصور می‌کند که عدد همان سه رقم اول بوده است
      باید قبل از ذخیره‌سازی ویرگول‌ها را حذف کنید

  11. حقجو می‌گوید:

    دم شما گرم. خیلی عالی بود.

    فقط اسکری‍‍‍‍پت اول که برای اضافه کردن کاما هست برای من یک مشکل داشت و پیغام خطا میداد که .replace رو نمیشناسه! با کمی جستجو متوجه شدم ظاهرا مشکل از اونجاست که متغیر str رو بعنوان یک string دریافت نمیکنه و به همین خاطر خطا میده. به همین خاطر با اضافه کردن دستور toString() قبل از دستور .replace() مشکلم حل شد.

    str = str.toString().replace( objRegex, ‘$1,$2′ );

  12. میلاد می‌گوید:

    ممنونم عالی بود

پاسخ دادن به سهرابلو لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>