メインメニューを開く
ホーム
おまかせ表示
ログイン
設定
WikiWikiについて
免責事項
WikiWiki
検索
「
モジュール:文字列
」を編集中
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
local p = {} function p.bytenum(frame) return string.len(frame.args[1]) end function p.emcharnum(frame) return string.len(frame.args[1]) / 3 end function each_utf8(text) local i=1 return function() if i>#text then -- 終了 return end local b=string.byte(text, i) if b==0 then -- eof return elseif b<128 then -- ascii local m=string.sub(text, i, i) i=i+1 return m elseif b<192 then assert(false, 'invalid byte') return elseif b<224 then -- 2bytes local m=string.sub(text, i, i+1) i=i+2 return m elseif b<240 then -- 3bytes(japanese multibyte) local m=string.sub(text, i, i+2) i=i+3 return m elseif b<248 then -- 4bytes local m=string.sub(text, i, i+3) i=i+4 return m elseif b<252 then -- 5bytes local m=string.sub(text, i, i+4) i=i+5 return m elseif b<254 then -- 6bytes local m=string.sub(text, i, i+5) i=i+6 return m else assert(false, 'unknown') return end end end function p.reverse(frame) es = "" for v in each_utf8(frame.args[1]) do es = v..es end return es end function p.timestamp(frame) str = string.char(string.byte(frame.args[1],1,4)).."年"..string.char(string.byte(frame.args[1],5,6)).."月"..string.char(string.byte(frame.args[1],7,8)).."日"..string.char(string.byte(frame.args[1],9,10)).."時"..string.char(string.byte(frame.args[1],11,12)).."分"..string.char(string.byte(frame.args[1],13,14)).."秒" return str end function p.deletedefaultsort(cont) a,b = string.find(cont.args[1],"{{defaultsort:") str = "" if a then c,d = string.find(cont.args[1],"}}",b+1) str = string.char(cont.args[1],string.byte(cont.args[1],1,a-1))..string.char(cont.args[1],string.byte(cont.args[1],d+1,string.len(cont.args[1]))) else str = cont.args[1] end return str end function p.index(frame) s = "" if frame.args[3] then for i=0, frame.args[3] - frame.args[2] do s = s..each_utf8(frame.args[1])[frame.args[2]+i] end elseif frame.args[2] then for i=1, frame.args[2] do s = s..each_utf8(frame.args[1])[i] end elseif frame.args[1] then s = each_utf8(frame.args[1])[1] else assert(false,"引数を一つ以上入力してください。") end return s end function p.split(sep,trgt) if trgt == nil then return {} end local t = {} i = 1 for str in string.gmatch(trgt, "[^"..sep.."]+") do t[i] = str i = i + 1 end return t end return p
編集内容の要約:
WikiWikiへの投稿はすべて、クリエイティブ・コモンズ・ゼロ(パブリックドメイン) (詳細は
WikiWiki:著作権
を参照)のもとで公開したと見なされることにご注意ください。 自分が書いたものが他の人に容赦なく編集され、自由に配布されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください。
著作権保護されている作品は、許諾なしに投稿しないでください!
編集を中止
編集の仕方
(新しいウィンドウで開きます)
このページで使用されているテンプレート:
モジュール:文字列
(
編集
)
モジュール:文字列/doc
(
編集
)