Module:Str find word/doc

From MOASSpedia
Jump to navigation Jump to search

This is the documentation page for Module:Str find word

development links (Nov 2021)
This box: view · edit
mw:Lua manual; m:String m:Infobox m:Yesno m:TableTools · {{nav wtext-handling}} · m:ns detect m:pagetype

Implements {{Str find word}}.

This module looks for a full word in a comma-separated list of words. It then returns a True or False value. By default, the True-value returned is the found word itself; the False-value is a blank string.

The search can be extended to check for multiple words being present.

For example, in the string 'alpha, foobar' the word 'alpha' appears, but the word 'foo' does not: there only is the complete word 'foobar'. The module is aimed at template code usage. (The editor does not have to apply Lua patterns like [%a%d]*).

Usage

This documentation is not up to date. See template {{Str find word}}.

Basic

Core function:

{{Str find word
|source =
|word   =
|yes    =
|no     =
}}
When the word is found in the source (True), the function returns the word itself (by default), or |yes= value (when entered non-empty).
When not found (False), the function returns a empty string (''), or the |no= value when entered.
|source=alpha, foo, lima |word= Red XN no |word= entered
|source=alpha, foo, lima |word=foobar No, not found Red XN full word foo-bar not in the source
|source=alpha, foo, lima |word=foobar No, not found Red XN word foo not in the source as full word
... |yes=Yes, hit |no=Not found
|source=alpha, foo, lima |word=foo Yes, hit Green tickY
|source=alpha, foo, lima |word=foobar No, not found Red XN

All parameters

All parameters, in three options
{{Str find word
|string = 
|word   =
|andwords =
|orwords  = 
|case=
|yes =
|no  =
|explain =
}}
{{Str find word
|s   = 
|w   =
|andw=
|orw =
|case=
|yes =
|no  =
|explain =
}}
{{Str find word |s= |w= |andw= |orw= |case= |yes= |no= |explain=}}

More options

|source=
|s=
|word=
|w=
|case= result note
|s=alpha, foo, lima |w=foo yes
|s=alpha, foo, lima |w=foobar no
|s=alpha, foobar, lima |w=foo no 'foo' is not the complete word
|s=alpha, FOO, lima |w=foo yes |case=false: a=A (default)
|s=alpha, FOO, lima |w=foo no |case=true: a=/=A

AND-, OR-wordlist checks

|word= as noted, can be a list of words. all will be checked with the AND-requirement (each word must be present).
|andwords= accepts a list of words that all will be checked with the AND-requirement (each word must be present).
When both |word=, |andwords= are present, they are combined into one single AND-wordlist.
|orwords= accepts a list of words that all will be checked with the OR-requirement (at least one of the words must be present).
|source=
|s=
|andwords=
|andw=
|orwords=
|orw=
result TODO fix note
|s=alpha, foo, lima, delta |andw=delta, lima delta,lima both words present in the source
|s=alpha, foo, lima, delta |andw=foo, nov AND-logic: A word in the AND-list is not present (nov), so false
|s=alpha, foo, lima, delta |andw=delta delta |w= and |andw= are combined
|s=alpha, foo, lima, delta |orw=delta, lima delta,lima both OR-words are present in the source
|s=alpha, foo, lima, delta foo OR-logic: one of the words is present (|foo=), so true
|s=alpha, foo, lima, delta |andw=alpha, lima |orw=foo, nov alpha,lima,foo
|s=alpha, foo, lima, delta |andw=bar, april |orw=nov, dec none of the OR-words is present, so false

issues and ideas

  • keep the order, Foo, bar -> foo(1), bar(2)
eg table col userinput options, then cols in that order?

Errors and analysis

  • The logic itself does not produce errors. There is always a True of False result.
There are no logical errors foreseen: any flaw in the input will return a False result (for example, no input strings to check were entered).
  • |explain=true: when in Preview, display a report on input, output and the logical steps (debug).
  • |explain=testcases: When set in ns Template or User on subpage /testcases, the Preview report is static (shown permanently).