Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
1

After Effects Expression for replacing dots with commas

Community Beginner ,
Jan 29, 2022 Jan 29, 2022

Hello all.

 

I have the following expression for my source code: 

effect("Einstellungen für Schieberegler")("Schieberegler").value.toFixed(1)+" %";

 

Unfortunately, the digits after the comma are separated by a dot. Since I work in Germany, I would like to have the place after the comma separated by a comma. 

 

Unfortunately, this does not work as an addition:

replace (".",",");

 

Can anyone help me?

 

Thank you very much!

TOPICS
Scripting
8.3K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Jan 29, 2022 Jan 29, 2022

Also this one is better if you want to automatically add comma for every 3 digits 

 

 

num = effect("Slider Control")("Slider").value.toFixed(1).toString().replace(".", ",")+"%";
function addCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); }
addCommas(num)

 

 

 

num =effect("Einstellungen für Schieberegler")("Schieberegler").value.toFixed(1).toString().replace(".", ",")+" %";
function addCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); }
addCommas(num
...
Translate
Community Expert ,
Jan 29, 2022 Jan 29, 2022

Make sure your project's expression engine is Javascript (which you can do in File > Project Settings > Expressions, then use this expression:

text.sourceText.split('.').join(',');

 

Someone who knows Javascript better than me can explain why what you would usually use:

text.sourceText.replace(/./g, ",")

replaces all the characters and there's probably a simple character addition to tell the script to only select '.' and not take it to mean all characters.

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jan 30, 2022 Jan 30, 2022

Dear ShiveringCactus
Thank you very much for your help. Unfortunately it doesn't work, although I checked before that my file uses Java script (thanks for the tip). The result was that the whole number was replaced by the word "numbers".
However, OussK's idea worked:
effect("Slider settings")("Slider").value.toFixed(1).toString().replace(".", ",")+" %";

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 14, 2023 Dec 14, 2023

Thank you very much, this code worked for me too.

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 15, 2023 Dec 15, 2023

In regex syntax the "." symbol is a special character that matches any character other than a line terminator. It should work if you escape it:

 

text.sourceText.replace(/\./g, ",")


If you are trying to get a better handle on how regular expressions work an online regex tester like the one at https://regex101.com can be invaluable.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 29, 2022 Jan 29, 2022

try this 

effect("Slider Control")("Slider").value.toFixed(1).toString().replace(".", ",")+"%";

in German

effect("Einstellungen für Schieberegler")("Schieberegler").value.toFixed(1).toString().replace(".", ",")+" %";

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 29, 2022 Jan 29, 2022

Also this one is better if you want to automatically add comma for every 3 digits 

 

 

num = effect("Slider Control")("Slider").value.toFixed(1).toString().replace(".", ",")+"%";
function addCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); }
addCommas(num)

 

 

 

num =effect("Einstellungen für Schieberegler")("Schieberegler").value.toFixed(1).toString().replace(".", ",")+" %";
function addCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); }
addCommas(num)

 

 

 

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jan 30, 2022 Jan 30, 2022

Dear OussK

You are my hero. Thank you very much! I wish you a sunny Sunday 😉

Kind regards from Düsseldorf (Germany),
Stefan

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 11, 2022 Feb 11, 2022

you're welcome, don't forget mark the answer as correct if it help you

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jul 23, 2022 Jul 23, 2022

Dear OussK

You are also my hero, thank you very much from Phnom Penh!

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Nov 20, 2023 Nov 20, 2023

The '.toString' thing saved me man, thanks a million!

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Apr 06, 2025 Apr 06, 2025

MAN, you saved my professional life - just wasted about 2 hours on sensless youtube videos not solving the problem, NICE ONE AND SIMPLE thank you so much 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Apr 10, 2025 Apr 10, 2025
LATEST

You'll want to use toLocaleString() to solve such issues related to international numbering systems. 

I've started writing a series of short tutorials on using Modern Javascript in After Effects Expressions. These are part of my Advanced Course on Developing Advanced Intelligent Design Assets - these are start of the moment AE Templates/MoGRTs. 

https://www.broadcastgems.com/post/modern-javascript-adobe-after-effects-expressions-tolocalestring

I'll add more topics in the days and weeks ahead. Quite a few will also make it into my upcoming AE Script, AeXpressions NotePad - I hope it's OK to share this teaser/snippet. 






 

Very Advanced After Effects Training | Adaptive & Responsive Toolkits | Intelligent Design Assets (IDAs) | MoGraph Design System DEV
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines