# Node-Red + MQTT string -\> split numbers from letters

**URL:** <https://discourse.nodered.org/t/node-red-mqtt-string-split-numbers-from-letters/89092>\
**Category:** General\
**Created:** [29 June 2024 15:40 UTC](https://discourse.nodered.org/t/node-red-mqtt-string-split-numbers-from-letters/89092 "2024-06-29T15:40:28Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![delei](https://avatars.discourse-cdn.com/v4/letter/d/ecae2f/32.png) [@delei](https://discourse.nodered.org/u/delei)\
**Post date:** [29 June 2024 15:40 UTC](https://discourse.nodered.org/t/node-red-mqtt-string-split-numbers-from-letters/89092/1 "2024-06-29T15:40:28Z")

</div>

Node-Red 4.0.1  
Node.js 20.14.0

I get the MQTT Topic as string which includes numbers and letters. I would like to dump the letters to get the number only.

257.01kwh =\>\> 257.01

or

0.35A =\>\> 0.35

or

1233.92W =\>\> 1233.92

How do filter out the letters and change the string to number.

Thanks for your support.

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [29 June 2024 15:44 UTC](https://discourse.nodered.org/t/node-red-mqtt-string-split-numbers-from-letters/89092/2 "2024-06-29T15:44:28Z")

</div>

You can use a function node with

```auto
msg.payload = parseFloat(msg.payload)
return msg;

```

> **[parseFloat() - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat)**
>
> The parseFloat() function parses a string argument and returns a floating point number.

And if you want it as a string  
use toFixed()

> **[Number.prototype.toFixed() - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed)**
>
> The toFixed() method of Number values returns a string representing this number using fixed-point notation with the specified number of decimal places.

or toString() if rounding is not required.

> **[String.prototype.toString() - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toString)**
>
> The toString() method of String values returns this string value.

---

<div class="post-metadata">

**Author:** ![delei](https://avatars.discourse-cdn.com/v4/letter/d/ecae2f/32.png) [@delei](https://discourse.nodered.org/u/delei)\
**Post date:** [29 June 2024 16:16 UTC](https://discourse.nodered.org/t/node-red-mqtt-string-split-numbers-from-letters/89092/3 "2024-06-29T16:16:28Z")

</div>

Thanks!! That works well.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [27 September 2024 16:16 UTC](https://discourse.nodered.org/t/node-red-mqtt-string-split-numbers-from-letters/89092/4 "2024-09-27T16:16:50Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
