VBScript wordwrap 関数

文字列分割文字を使用して指定した文字数数に文字列を分割する


Function wordwrap( str, int_width, str_break, cut )

    If len(int_width) = 0 Then int_width = 75
    If len(str_break) = 0 Then str_break = vbCrLf

    Dim m : m = int_width
    Dim b : b = str_break
    Dim c : c = cut

    Dim i,j, l, s, r
    Dim matches

    If m < 1 Then
        wordwrap = str
        Exit Function
    End If

    r = split(str,vbCrLf)
    l = uBound(r)
    i = -1

    Do While i < l
        i = i +1

        s = r(i)
        r(i) = "

        Do While len(s) > m
            j = [==](c, 2)
            If is_empty(j) Then
                If preg_match("/¥S*(¥s)?$/",Left(s,m+1),matches,",") Then
                    If len( trim(matches(0)) ) = 0 Then
                        j = m
                    Else
                        j = len( Left(s,m+1) ) - len(matches(0))
                    End If
                End If

                If is_empty(j) Then
                    j = [?]([==](c, true),m,false)
                End If

                If is_empty(j) Then
                    call preg_match("/^¥S*/",Mid(s,m),matches,",")
                    j = len( Left(s,m) ) + len(matches(0))
                End If
            End If

            r(i) = r(i) & Left(s, j)
            s = Mid(s,j+1)
            r(i) = r(i) & [?](len(s), b , ")
        Loop

        r(i) = r(i) & s

    Loop

    wordwrap = join(r,vbCrLf)

End Function

引数

str = string 入力文字列。
width = int カラムの幅。デフォルトは 75。
break = string オプションのパラメータ break を用いて行を分割します。 デフォルトは ‘vbCrLf’ です。
cut = bool cut を TRUE に設定すると、 文字列は常に指定した幅でラップされます。このため、 指定した幅よりも長い単語がある場合には、分割されます (2 番目の例を参照ください)。

戻り値

変換後の文字列を返します。

処理

・ 指定した文字数で、指定した文字を用いて文字列を分割します。

その他の PHP strings 関数