• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کار با ارقام
#1
با سلام دوستان
می خواستم اعداد رو 3تا 3 تا جدا کنم
مثلا عدد 100000 رو به 100،000 اینصورت بنویسم
ممنون میشم دوستان با تجربه کمکم کنن

احساس می کنم عنوان مناسبی رو انتخاب نکردم ببخشید بهترین چیزی که به ذهنم رسید همین بود.
  پاسخ
تشکر شده توسط :
#2
http://php.net/manual/en/function.number-format.php

کد پی‌اچ‌پی:
<?php
echo number_format("1000000");
echo 
"<br />";
echo 
number_format("1000000",2);
echo 
"<br />";
echo 
number_format("1000000",2,",",".");
?> 

//خروجی:
1,000,000
1,000,000.00
1.000.000,00 
اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی دیگه در مورد آزادی شعار نده !
آلبر کامو
  پاسخ
تشکر شده توسط : troll Reza hidensoft hamid_80386
#3
ممنون دوست عزیز
حالتی هست که بشه برعکس این تابع عمل کنه
یعنی عدد 100،000 رو به 100000 تبدیل کنه ؟
  پاسخ
تشکر شده توسط :
#4
میتونی یه explode کنی بعد با یه foreach همه شو بچسبونی به هم.
البته شاید راه بهتری هم باشهBig Grin
  پاسخ
تشکر شده توسط : troll
#5
با
str_replace می تونی
  پاسخ
تشکر شده توسط : Reza
#6
کد پی‌اچ‌پی:
function number_format_invers($number$thousands_sep ','){
  return 
str_replace($thousands_sep""$number);

  پاسخ
تشکر شده توسط : troll Reza
#7
نقل قول:str_replace می تونی
نگفتم راه حلهای بهتری هم هست اما چرا به فکر خودم نرسیدUndecided
فکرکنم دلیلش همون مجردیهBig Grin
  پاسخ
تشکر شده توسط :
#8
نقل قول:فکرکنم دلیلش همون مجردیه
تا مجردی فکرت می تونه کا کنه
زن بگیری که کلا تعطیله!
  پاسخ
تشکر شده توسط :
#9
اینم جاواش
هم یه str_replace j توپ و هم گروهبندی اعداد

کد:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<script type="text/javascript" language="javascript">
<!--
function str_replace (search, replace, subject, count) {
    // Replaces all occurrences of search in haystack with replace  
    //
    // version: 1109.2015
    // discuss at: http://phpjs.org/functions/str_replace
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   input by: Oleg Eremeev
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Oleg Eremeev
    // %          note 1: The count parameter must be passed as a string in order
    // %          note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'
    var i = 0,
        j = 0,
        temp = '',
        repl = '',
        sl = 0,
        fl = 0,
        f = [].concat(search),
        r = [].concat(replace),
        s = subject,
        ra = Object.prototype.toString.call(r) === '[object Array]',
        sa = Object.prototype.toString.call(s) === '[object Array]';
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }

    for (i = 0, sl = s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j = 0, fl = f.length; j < fl; j++) {
            temp = s[i] + '';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length - s[i].length) / f[j].length;
            }
        }
    }
    return sa ? s : s[0];
}
function addCommas(nStr)
{
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    //alert(x1+x2);
    return x1 + x2;
    
}
function changeText(ID)
{
    var str= document.getElementById(ID).value;
    //
        var new_text = str_replace(",","", str);
    document.getElementById(ID).value=addCommas(new_text);
}
//-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled 1</title>
</head>

<body>
<form method="post">
    <input name="Text1" type="text" id="T1" onkeyup="changeText('T1')"  />
</form>
</body>

</html>
Cool

فقط تو textbox هاتون حتماً از رویداد keyUp استفاده کنید، با keyDown سمت راستی ها رو چهار رقم جدا میکنه، دلیلش رو هم که دیگه نمیگم دیگه، تابلو هست...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : troll mohsen_danpk
#10
(۱۳۹۱ اردیبهشت ۰۲, ۰۸:۲۹ ب.ظ)hamid_80386 نوشته: اینم جاواش
هم یه str_replace j توپ و هم گروهبندی اعداد

کد:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<script type="text/javascript" language="javascript">
<!--
function str_replace (search, replace, subject, count) {
    // Replaces all occurrences of search in haystack with replace  
    //
    // version: 1109.2015
    // discuss at: http://phpjs.org/functions/str_replace
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   input by: Oleg Eremeev
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Oleg Eremeev
    // %          note 1: The count parameter must be passed as a string in order
    // %          note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'
    var i = 0,
        j = 0,
        temp = '',
        repl = '',
        sl = 0,
        fl = 0,
        f = [].concat(search),
        r = [].concat(replace),
        s = subject,
        ra = Object.prototype.toString.call(r) === '[object Array]',
        sa = Object.prototype.toString.call(s) === '[object Array]';
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }

    for (i = 0, sl = s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j = 0, fl = f.length; j < fl; j++) {
            temp = s[i] + '';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length - s[i].length) / f[j].length;
            }
        }
    }
    return sa ? s : s[0];
}
function addCommas(nStr)
{
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    //alert(x1+x2);
    return x1 + x2;
    
}
function changeText(ID)
{
    var str= document.getElementById(ID).value;
    //
        var new_text = str_replace(",","", str);
    document.getElementById(ID).value=addCommas(new_text);
}
//-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled 1</title>
</head>

<body>
<form method="post">
    <input name="Text1" type="text" id="T1" onkeyup="changeText('T1')"  />
</form>
</body>

</html>
Cool

فقط تو textbox هاتون حتماً از رویداد keyUp استفاده کنید، با keyDown سمت راستی ها رو چهار رقم جدا میکنه، دلیلش رو هم که دیگه نمیگم دیگه، تابلو هست...

الان مشکل اینه که مثلا عدد 172.159.158 رو وارد کنی عددی که میره تو دیتا بیس 172 ست
چه کنیم که این انقطه ها یا ویرگول ها رو بررداره؟

حالا از اون ور اگه بخواهیم خروجیه یه فیلده کوئری رو 3رقم 3 رقم جدا کنه چی
هر کسی را نه آنگونه که هست احساسش میکنند، بلکه بدان گونه که احساسش میکنند، هست.
دکتر علی شریعتی
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان