Skip to main content

Razor Blade Tutorials

Tutorial HomeRazor.Blade

RazorBlade Text.Has(...) v1.1

These demos show how to really check if a variable has text using Text.Has. This combines checks for...

  • null
  • empty
  • only html-nbsp
  • only html character #160 (also nbsp)
  • only new-line

RazorBlade API Docs

Examples

Test Code Result ...when html counts
Null valueText.Has(null)
Just spacesText.Has(" ")
text with only line breaksText.Has("\n\n")
tabs, spaces and line breaksText.Has("\n\t \n")
only nbsp charactersText.Has("   ")✔️
char-code of nbsp charactersText.Has(" ")✔️
real textText.Has("real text")✔️✔️
Real text with nbps etc.Text.Has("real\n text  ")✔️✔️

Special case: <BR> Whitespace

  • If your string is like Text.Has("<br>") it will be: True
  • If you want to ignore BRs, combine it with Tags.Br2Nl(...)
  • ...resulting in: False

Source Code of this file

Below you'll see the source code of the file. Note that we're just showing the main part, and hiding some parts of the file which are not relevant for understanding the essentials.

@inherits Custom.Hybrid.Razor12
@using ToSic.Razor.Blade;
<!-- unimportant stuff, hidden -->
RazorBlade Text.Has(...) v1.1 These... <!-- unimportant stuff, hidden -->

@functions {
  // Quick helper to convert true/false into emojis
  string Boolmoji(bool value) { return value ? "✔️" : "❌"; }

  // Create a row (TR) containing data about a Text.Has example
  dynamic RowEmojified(string label, string value) {
    var valueForShowing = value == null 
      ? "null" 
      : "\"" + value.Replace("\n", "\\n").Replace("\t", "\\t") + "\"";
    return Tag.Tr(
      Tag.Td(label),
      Tag.Td("Text.Has(" + Tags.Encode(valueForShowing) + ")"),
      Tag.Td(Boolmoji(Text.Has(value))),
      Tag.Td(Boolmoji(Text.Has(value, false)))
    );
  }
}

<h2>Examples</h2>
<table class="demo table table-hover">
  <tr>
    <th>Test</th>
    <th>Code</th>
    <th>Result</th>
    <th>...when html counts</th>
  </tr>
  @RowEmojified("Null value", null)
  @RowEmojified("Just spaces", "     ")
  @RowEmojified("text with only line breaks", "\n\n")
  @RowEmojified("tabs, spaces and line breaks", "\n\t  \n")
  @RowEmojified("only nbsp characters", "&nbsp; &nbsp;")
  @RowEmojified("char-code of nbsp characters", "&#160;")
  @RowEmojified("real text", "real text")
  @RowEmojified("Real text with nbps etc.", "real\n text &nbsp;")
</table>

<h2>Special case: &lt;BR&gt; Whitespace</h2>

<ul>
  <li>If your string is like Text.Has("&lt;br&gt;") it will be: @Text.Has("<br>")</li>
  <li>If you want to ignore BRs, combine it with @hlp.TutLink("Tags.Br2Nl(...)", "blade220") </li>
  <li>...resulting in: @Text.Has(Tags.Br2Nl("<br>"))</li>
</ul>


<!-- unimportant stuff, hidden -->