# T3's regex for CountUp.JS
### C#
```
var statNumber = statistic.Content.Value<string>("statisticNumber");
var statHeading = statistic.Content.Value<string>("statisticHeading");
```
```
var pattern = @"^(\+)|\D";
var substitution = @"";
var options = RegexOptions.Multiline;
var regex = new Regex(pattern, options);
var cleanStatNumber = regex.Replace(statNumber, substitution);
```
```
var secondPattern = @"^(\+)|(\d|,.*?)";
var secondRegex = new Regex(secondPattern, options);
var cleanSuffixOrPrefix = secondRegex.Replace(statNumber, substitution);
```
```
var suffixPattern = @"^(\.)|\d|,.*?|.+?(?=[0-9])";
var suffixRegex = new Regex(suffixPattern, options);
var cleanSuffix = suffixRegex.Replace(statNumber, substitution);
```
```
var prefixPattern = @"^(\.)|.*?(?=[0-9])";
var prefixRegex = new Regex(prefixPattern, options);
var cleanPrefix = prefixRegex.Match(statNumber);
```
```
<div class="col-xs-12 col-md-6 col-lg-4 center-xs">
<div class="m-statistic-card">
<p class="a-h1 color-text-brand v-no-top-spacing js-countup" data-countup-value="@cleanStatNumber" data-countup-prefix="@cleanPrefix" data-countup-suffix="@cleanSuffix" id="@statistic.Content.Key">@statNumber</p>
<p class="a-h7">@statHeading</p>
@* T3 Regex Debugger *@
@*<p>@cleanStatNumber</p>*@
@*<div style="display:flex; flex-direction:row;">
<div style="display:flex; flex-direction:column; margin-right:2rem;">
<h6>All Characters</h6>
<p>@cleanSuffixOrPrefix</p>
</div>
<div style="display:flex; flex-direction:column; margin-right:2rem;">
<h6>Prefix</h6>
<p>@cleanPrefix</p>
</div>
<div style="display:flex; flex-direction:column; ">
<h6>Suffix</h6>
<p>@cleanSuffix</p>
</div>
</div>*@
</div>
</div>
```
### JavaScript
```
export const initCountUp = countUpElement => {
const easingFn = function(t, b, c, d) {
var ts = (t /= d) * t;
var tc = ts * t;
return b + c * (tc * ts + -5 * ts * ts + 10 * tc + -10 * ts + 5 * t);
};
const prefix = countUpElement.getAttribute("data-countup-prefix");
const suffix = countUpElement.getAttribute("data-countup-suffix");
const options = {
duration: 3,
prefix: prefix,
suffix: suffix,
easingFn
};
const countUpId = countUpElement.id;
const value = countUpElement.getAttribute("data-countup-value");
let countUpPlugin = new CountUp(countUpId, value, options);
if (!countUpPlugin.error) {
countUpPlugin.start();
} else {
console.error(countUpPlugin.error);
}
};
```