From 64166e8b5e38b18a801e552148c03069b8ee60ef Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Tue, 25 Oct 2011 18:11:11 -0700 Subject: [PATCH] Adding word boundary option to Ellipsis extension method --HG-- branch : 1.x --- src/Orchard/Utility/Extensions/StringExtensions.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Orchard/Utility/Extensions/StringExtensions.cs b/src/Orchard/Utility/Extensions/StringExtensions.cs index 826d34ede..ead033eff 100644 --- a/src/Orchard/Utility/Extensions/StringExtensions.cs +++ b/src/Orchard/Utility/Extensions/StringExtensions.cs @@ -20,14 +20,20 @@ namespace Orchard.Utility.Extensions { return text.Ellipsize(characterCount, " …"); } - public static string Ellipsize(this string text, int characterCount, string ellipsis) { + public static string Ellipsize(this string text, int characterCount, string ellipsis, bool wordBoundary = false) { if (string.IsNullOrWhiteSpace(text)) return ""; if (characterCount < 0 || text.Length <= characterCount) return text; - return Regex.Replace(text.Substring(0, characterCount + 1), @"\s+\S*$", "") + ellipsis; + var trimmed = Regex.Replace(text.Substring(0, characterCount + 1), @"\s+\S*$", "") ; + + if(wordBoundary) { + trimmed = Regex.Replace(trimmed + ".", @"\W*\w*$", ""); + } + + return trimmed + ellipsis; } public static string HtmlClassify(this string text) {