יחידה:String: הבדלים בין גרסאות בדף
מ Changed protection level for "Module:String": request at RfP ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite)) |
מ 16 גרסאות של הדף wikipedia:he:יחידה:String יובאו |
||
| (16 גרסאות ביניים של 6 משתמשים אינן מוצגות) | |||
| שורה 383: | שורה 383: | ||
end | end | ||
--[[ | --[[ | ||
"Reverse" reverses a string, a'la string.reverse() | |||
]] | ]] | ||
str.reverse = function( frame ) | |||
local tab = mw.text.split( frame.args[1] or '', '' ) | |||
local restab = {} | |||
for i = #tab, 1, -1 do table.insert( restab, tab[i] ) end | |||
return table.concat( restab ) | |||
end | |||
str['היפוך'] = str.reverse | |||
--[[ | --[[ | ||
| שורה 423: | שורה 423: | ||
function str._error( error_str ) | function str._error( error_str ) | ||
local frame = mw.getCurrentFrame(); | local frame = mw.getCurrentFrame(); | ||
local error_category = frame.args.error_category or ' | local error_category = frame.args.error_category or 'שגיאות טיפול במחרוזת'; | ||
local ignore_errors = frame.args.ignore_errors or false; | local ignore_errors = frame.args.ignore_errors or false; | ||
local no_category = frame.args.no_category or false; | local no_category = frame.args.no_category or false; | ||
| שורה 433: | שורה 433: | ||
local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>'; | local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>'; | ||
if error_category ~= '' and not str._getBoolean( no_category ) then | if error_category ~= '' and not str._getBoolean( no_category ) then | ||
if mw.title.getCurrentTitle().namespace ~= 10 then | |||
error_str = '[[Category:' .. error_category .. ']]' .. error_str; | |||
end | |||
end | end | ||
| שורה 467: | שורה 469: | ||
function str._escapePattern( pattern_str ) | function str._escapePattern( pattern_str ) | ||
return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ); | return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ); | ||
end | |||
--[[ | |||
contains_any | |||
This function returns the first matched element or empty string | |||
Usage: | |||
{{#invoke:String|contains_any|string|search1|search2|search3...}} | |||
Parameters | |||
1: string | |||
2...: strings to search within the first string | |||
]] | |||
function str.contains_any( frame ) | |||
for i,v in pairs(frame.args) do | |||
if i>1 then | |||
local m=mw.ustring.find( frame.args[1], v, 0, true) | |||
if m then | |||
return v | |||
end | |||
end | |||
end | |||
return | |||
end | |||
--[[ | |||
contains_any_csv | |||
This function returns the first matched element or empty string. | |||
Usage: | |||
{{#invoke:String|contains_any_csv|string|search1,search2,search3}} | |||
Parameters | |||
1: string | |||
2: comma seperated list of strings to search within the first string | |||
]] | |||
function str.contains_any_csv( frame ) | |||
for word in mw.ustring.gmatch(frame.args[2], '([^,]+)') do | |||
local m=mw.ustring.find( frame.args[1], word, 0, true) | |||
if m then | |||
return word | |||
end | |||
end | |||
return | |||
end | |||
str.rep = function( frame ) | |||
local strval, repval = frame.args[1] or '', tonumber( frame.args[2] ) | |||
if not repval then return '' end | |||
return string.rep( strval, repval ) | |||
end | |||
str.join = function(frame) | |||
local res = {} | |||
local sep = ', ' | |||
for k,v in pairs(frame.args) do | |||
if k=='sep' then | |||
sep = v | |||
else | |||
if #v>0 then -- avoid empty string | |||
table.insert(res, v) | |||
end | |||
end | |||
end | |||
return table.concat( res, sep) | |||
end | |||
str.encode = function(frame) | |||
return mw.text.encode( frame.args[1] or "" ) | |||
end | |||
str["קידוד"] = str.encode | |||
str['מיצוי מספר'] = function(frame) | |||
local s = frame.args[1] | |||
local def = frame.args[2] or '' | |||
if not s then return def end | |||
local int, frac = s:match('[^%d.-]*(%-?[%d,]*)(%.%d+)') | |||
if int or frac then | |||
int = string.gsub(int or '', ',', '') -- remove commas | |||
frac = frac or '' | |||
return int .. frac | |||
end | |||
int = s:match('[^%d.-]*(%-?[%d,]*)') | |||
int = int and string.gsub(int or '', ',', '') | |||
return int or def | |||
end | end | ||
return str | return str | ||