پودمان:StringReplace: تفاوت میان نسخهها
dezfulwiki>Dalba جز («پودمان:StringReplace» را محافظت کرد: الگوهای حساس: Special:Permalink/26127581#پود:StringReplace ([ویرایش=تنها مدیران] (بیپایان) [انتقال=تنها مدیران] (بیپایان))) |
جز (۱ نسخه واردشده) |
(بدون تفاوت)
|
نسخهٔ کنونی تا ۱۹ اکتبر ۲۰۲۱، ساعت ۱۳:۰۲
توضیحات این پودمان میتواند در پودمان:StringReplace/توضیحات قرار گیرد.
-- Module for different search and replace operations on strings. local p = {} -- Takes one string parameter, and returns the string with all characters with special meaning for Lua patterns escaped with a preceding `%`. function p.escape_pattern(text) -- Replaces each occurrence of any of ().%+-*?[^$ with a `%` and then the character. local r = string.gsub(text, "[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1") return r end -- Returns the first parameter, with all occurrences of the second parameter replaced with the third parameter. -- All special characters are ignored: {{#invoke:StringReplace|replace_all|test.a%1$foo|%1|bar}} results in `test.abarfoo`. function p.replace_all(frame) local str = frame.args[1] local strToFind = frame.args[2] local strToreplaceWith = frame.args[3] local r = string.gsub(str, p.escape_pattern(strToFind), p.escape_pattern(strToreplaceWith)) return r end p['encode wiki page name'] = function( frame ) local x = mw.ustring.gsub( frame.args[1] or '', '[\'"&_]', { ["'"] = ''', ['"'] = '"', ['&'] = '&', ['_'] = ' ', } ) return mw.text.trim( x ) end return p