انجمن‌های فارس وب

نسخه کامل: تبدیل عدد به حرف توسط جاوا اسكریپت
شما در حال بازدید از بایگانی ارسال های انجمن هستید این نسخه کامل نیست : برای مشاهده نسخه کامل اینجا کلیک کنید
سلام دوستان
با استفاده از این کد که در زبان vb.net است میشه عدد را به حروف تبدیل کرد. (که البته شاید خیلی از دوستان با آن اشنا باشند)

'فانکشن برای تبدیل عدد به حرف
    Public Function Con_Horof(ByVal Number_input As String) As String
        Dim i, l As Byte  ' 0,1,2,3,....,255
        Dim Number As Long

        Dim harf As String 'جداسازی اعداد از کل عبارت و به هم چسباندن
        For i = 1 To Len(Number_input)   'len(str)=طول رشته
            harf = Mid(Number_input, i, 1)  '=== substr
            If IsNumeric(harf) = True Then Number = Number & harf
        Next

        If Number = 0 Then
            Return "صفر"
        End If

        Dim Flag As Boolean 'true or false
        Dim s As String

        Dim k(0 To 5) As Long

        s = Str(Number) 'تبدیل عدد به رشته
        l = Len(s) 'بدست آوردن طول
        If l > 15 Then
            Return "عدد بسیار بزرگ"
        End If
        For i = 1 To 15 - l
            s = "0" & s
        Next i
        For i = 1 To Int((l / 3) + 0.99)
            k(5 - i + 1) = Val(Mid(s, 3 * (5 - i) + 1, 3))
        Next i
        Flag = False
        s = ""
        For i = 1 To 5
            If k(i) <> 0 Then
                Select Case i     'معادل switch
                    Case 1
                        s = s & Three(k(i)) & " تريليون"
                        Flag = True
                        'در سایر زبان ها  return استفده شود
                    Case 2
                        s = s & IIf(Flag = True, " و ", "") & Three(k(i)) & " ميليارد"
                        Flag = True
                    Case 3
                        s = s & IIf(Flag = True, " و ", "") & Three(k(i)) & " ميليون"
                        Flag = True
                    Case 4
                        s = s & IIf(Flag = True, " و ", "") & Three(k(i)) & " هزار"
                        Flag = True
                    Case 5
                        s = s & IIf(Flag = True, " و ", "") & Three(k(i))
                End Select
            End If
        Next i
        Return s + " تومان"
    End Function
    Private Function Three(ByVal Number As Integer) As String
        Dim s As String = ""
        Dim i, l As Long
        Dim h(0 To 3) As Byte

        l = Len(Trim(Str(Number)))
        If Number = 0 Then
            Return ""
        End If
        If Number = 100 Then
            Return "يكصد"
        End If

        If l = 2 Then h(1) = 0
        If l = 1 Then
            h(1) = 0
            h(2) = 0
        End If

        For i = 1 To l
            h(3 - i + 1) = Mid(Trim(Str(Number)), l - i + 1, 1)
        Next i

        Select Case h(1)
            Case 1
                s = "يكصد"
            Case 2
                s = "دويست"
            Case 3
                s = "سيصد"
            Case 4
                s = "چهارصد"
            Case 5
                s = "پانصد"
            Case 6
                s = "ششصد"
            Case 7
                s = "هفتصد"
            Case 8
                s = "هشتصد"
            Case 9
                s = "نهصد"
        End Select

        Select Case h(2)
            Case 1
                Select Case h(3)
                    Case 0
                        s = s & " و " & "ده"
                    Case 1
                        s = s & " و " & "يازده"
                    Case 2
                        s = s & " و " & "دوازده"
                    Case 3
                        s = s & " و " & "سيزده"
                    Case 4
                        s = s & " و " & "چهارده"
                    Case 5
                        s = s & " و " & "پانزده"
                    Case 6
                        s = s & " و " & "شانزده"
                    Case 7
                        s = s & " و " & "هفده"
                    Case 8
                        s = s & " و " & "هجده"
                    Case 9
                        s = s & " و " & "نوزده"
                End Select

            Case 2
                s = s & " و " & "بيست"
            Case 3
                s = s & " و " & "سي"
            Case 4
                s = s & " و " & "چهل"
            Case 5
                s = s & " و " & "پنجاه"
            Case 6
                s = s & " و " & "شصت"
            Case 7
                s = s & " و " & "هفتاد"
            Case 8
                s = s & " و " & "هشتاد"
            Case 9
                s = s & " و " & "نود"
        End Select

        If h(2) <> 1 Then
            Select Case h(3)
                Case 1
                    s = s & " و " & "يك"
                Case 2
                    s = s & " و " & "دو"
                Case 3
                    s = s & " و " & "سه"
                Case 4
                    s = s & " و " & "چهار"
                Case 5
                    s = s & " و " & "پنج"
                Case 6
                    s = s & " و " & "شش"
                Case 7
                    s = s & " و " & "هفت"
                Case 8
                    s = s & " و " & "هشت"
                Case 9
                    s = s & " و " & "نه"
            End Select
        End If
        s = IIf(l < 3, Right(s, Len(s) - 3), s)
        Return s
    End Function



آیا کسی هست که بتواند آن را به java Script تبدیل کند تا از آن در برنامه هایمان استفاده کنیم؟
فایل کد پیوست شد.
با تشکر.

دوستان راه حل پیدا شد.
فیل ها را پیوست می کنم تا اگه کسی نیاز داشت از اون استفاده کنه.
سلام
این تابع به زبان syntax crystal هست؟
مرجع آدرس ها