مواد ڏانھن هلو

ماڊيول:Ustring

کليل ڄاڻ چيڪلي، وڪيپيڊيا مان


هي ماڊيول سڌي طرح سانچو:Luaref لائبريري جون سڀئي فنڪشنون درآمد ڪري ٿو۔ هر فنڪشن جي وضاحت اتي ملي سگهي ٿي۔

هي ماڊيول بي شمار (indefinite) آرگومينٽس وٺي سگهي ٿو۔ جيڪي آرگومينٽ |s1=, |s2= وغيره طور ڏنا وڃن ٿا، اهي پهريان پڙهيا ويندا ۽ اسٽرنگ طور استعمال ٿيندا۔ باقي عددي آرگومينٽس کي ممڪن هجي ته نمبر ۾ تبديل ڪيو ويندو، نه ته اهي اسٽرنگ طور رهندا۔ جيڪڏهن توهان ڪنهن عددي آرگومينٽ کي اسٽرنگ طور رکڻ چاهيو ٿا ته ان جي شروعات ۾ \ لڳايو۔

ياد رهي ته MediaWiki هميشه نالي وارن آرگومينٽس مان خالي جڳهه (whitespace) هٽائي ڇڏيندو آهي؛ جيڪڏهن توهان کي خالي جڳهه سان گڏ آرگومينٽ ڏيڻا آهن ته اڻنالي پيرا ميٽرز استعمال ڪريو جيڪي \ سان شروع ٿين۔

مشڪل اسٽرنگ پاس ڪرڻ جا طريقا
هن کي پاس ڪرڻ لاءِ... هي لکو وضاحت
" 0123 " |\ 123 خالي جڳهه رکڻ لاءِ اڻنالي پيرا ميٽر استعمال ڪريو ۽ اڳ ۾ \ لڳايو۔
"0123" |s1=0123 جيڪڏهن خالي جڳهه ضروري نه هجي ته |s1= استعمال ڪريو۔
"0123" |1=\0123 |1= استعمال ڪري سگهو ٿا۔
ٻي سانچي مان {{{1}}} پاس ڪرڻ (خالي جڳهه سان) |\{{{1}}} \ لازمي آهي۔
ٻي سانچي مان {{{1}}} پاس ڪرڻ (بغير خالي جڳهه) |s1={{{1}}}
ٻي سانچي مان {{{1}}} پاس ڪرڻ |1=\{{#if:1|{{{1}}}}}

توهان نتيجن کي ٽئگز ۾ به وجهي سگهو ٿا۔ باقي آرگومينٽس سانچو:Luaref ڏانهن موڪليا ويندا۔

استعمال

[سنواريو]

{{#invoke:Ustring|function_name|arg1|arg2|...}} برابر آهي سانچو:Luaref

مثال (mw.ustring.sub)

[سنواريو]

{{#invoke:Ustring|sub|s1=abcde|2|4}}

نتيجو: bcd

مثال (mw.ustring.gsub)

[سنواريو]

{{#invoke:Ustring|gsub|s1=1234|23|}}

نتيجو: 14

مثال (mw.ustring.char)

[سنواريو]

&#{{#invoke:ustring|char|49|48|59}}

نتيجو: 


مثال (mw.ustring.match)

[سنواريو]

{{#invoke:Ustring|match|s1=abcde|s2=(c%w)}}

نتيجو: cd

نوٽ: صرف پهريون ميچ واپس ٿيندو۔

مثال (mw.ustring.len)

[سنواريو]

{{#invoke:Ustring|len|a string of twenty-nine chars}}

نتيجو: 29

ٽئگ سان مثال

[سنواريو]
{{#invoke:Ustring|match
|s1={{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+%
<!-- اصل نئين لائين داخل ڪريو -->%s%s%send
|tag=syntaxhighlight|lang=lua}}

نتيجو:

			if not fargs.tag then
				return (what(unpack(args)))		-- Outside parens truncate to first result avoiding tail call
			end
			local tagargs = {}
			for x, y in pairs(fargs) do
				if not fargsused[x] then tagargs[x] = y end
			end

غلطيون

[سنواريو]

سانچو:Luaref مان ايندڙ غلطيون ساڳيون رهنديون:

{{#invoke:Ustring|xyzzy}}

نتيجو: سانچو:Script error

۽

{{#invoke:Ustring|maxPatternLength}}

نتيجو: سانچو:Script error

پڻ ڏسو

[سنواريو]

سانچو:String handling templates


require('strict')
return setmetatable({}, {
	__index = function(t, k)
		local what = mw.ustring[k]
		if type(what) ~= "function" then
			return what
		end
		return function(frame)
			local fargs = frame.args
			local fargsused = { tag = true }
			local args = {}
			local str_i = 1
			while fargs['s' .. str_i] do
				fargsused['s' .. str_i] = true
				args[str_i] = fargs['s' .. str_i]
				str_i = str_i + 1
			end
			for i, v in ipairs(fargs) do
				fargsused[i] = true
				args[i + str_i - 1] = tonumber(v) or v:gsub("^\\", "", 1)
			end
			if not fargs.tag then
				return (what(unpack(args)))		-- Outside parens truncate to first result avoiding tail call
			end
			local tagargs = {}
			for x, y in pairs(fargs) do
				if not fargsused[x] then tagargs[x] = y end
			end
			return frame:extensionTag{name = fargs.tag, content = what(unpack(args)), args = tagargs}
		end
	end
})