在 After Effects 表达式中,字符串(string)是一种用于存储文本的数据类型。虽然 After Effects 表达式环境不支持所有 JavaScript 字符串方法,但仍然可以使用一些常见的方法进行字符串操作,如获取字符串长度、拼接、查找、替换等。

1、获取字符串长度

字符串对象的 length 属性用于获取字符串的字符数量。

示例:

var text = "mediaTEA";
var len = text.length;  // 8

text.length 返回 text 字符串的长度,即 8。

2、连接字符串

可以使用 + 或 concat() 方法合并多个字符串。

示例 1:使用 + 号拼接

var str1 = "media";
var str2 = "TEA";
var result = str1 + "" + str2;  // "mediaTEA"

+ 是最常用的字符串拼接方式。

示例 2:使用 concat() 方法

var str1 = "media";
var str2 = "TEA";
var result = str1.concat(" ", str2);  // "media TEA"

concat() 方法可以连接多个字符串。

另外,使用数组对象的 join(seperator) 方法,可以指字符串数组元素以指定的分隔符连接起来。

var arr = ["Hello", "mediaTEA"];
var str = arr.join(); // 默认的分隔符为 , 号

str;  // 返回 "Hello,mediaTEA"

3、转换大小写

可以使用 toUpperCase() 和 toLowerCase() 方法进行大小写转换。

toUpperCase() 将字符串转换为大写。

toLowerCase() 将字符串转换为小写。

示例:

var text = "mediaTEA";
var upper = text.toUpperCase();  // "MEDIATEA"
var lower = text.toLowerCase();  // "mediatea"

4、填充与重复

(1)padStart(targetLength, padString)

在字符串前面填充字符。

var str = "7";
str.padStart(3, "0");  // 返回 "007"

(2)padEnd(targetLength, padString)

在字符串后面填充字符。

var str = "5";
str.padEnd(3, "0");  // 返回 "500"

(3)repeat(n)

重复字符串 n 次。

var str = "AE ";
str.repeat(3);  // 返回 "AE AE AE "

5、去除首尾空格

(1)trim()

用于去除字符串两端的空格。

var text = "  mediaTEA  ";
var trimmed = text.trim();  // "mediaTEA"

(2)trimStart() / trimEnd()

分别用于去除前/后的空格。

var str = "  AE  ";
str.trimStart();  // 返回 "AE  "
str.trimEnd();  // 返回 "  AE"

6、查找子字符串

可以使用 indexOf() 或 includes() 方法查找字符串中的特定字符或子字符串的。

(1)indexOf()

查找字符串中的特定字符或子字符串,返回匹配字符的索引。如果找不到匹配项,indexOf() 返回 -1。

var text = "mediaTEA";
var index = text.indexOf("TEA");  // 5

indexOf("Effects") 返回 5,表示 "TEA" 在索引 5 处开始。

提示:

字符串中字符索引从 0 开始。

(2)includes()

检查字符串是否包含指定的字符或子字符串。

var text = "mediaTEA";
var hasWord = text.includes("TEA");  // true

includes("After") 返回 true,表示字符串中包含 "TEA"。

(3)startsWith() / endsWith()

检查字符串是否以指定的字符或子字符串开始或结尾。

var str = "mediaTEA";
str.startsWith("media");  // 返回 true
str.startsWith("TEA", 5);  // 返回 true
str.endsWith("TEA");  // 返回 true

7、提取子字符串

(1)charAt(index)

返回指定索引的字符。

var str = "mediaTEA";
str.charAt(5);  // 返回 "T"

(2)charCodeAt(index)

返回指定索引的字符的 Unicode 编码。

var str = "ABC";
str.charCodeAt(0);  // 返回 65

(3)slice(start, end)

提取字符串的一部分,不包含 end。

var text = "mediaTEA";
var part = text.slice(5, 7);  // "TE"

slice(5, 7) 提取索引 5 到 6 (不含 7)的字符。

(4)subsring(start, end)

功能类似于 slice(),但不支持负索引。

var str = "mediaTEA";
str.substring(5, 8);  // 返回 "TEA"

(5)substr(start, length)

从 start 开始,提取 length 个字符(不推荐,substr() 已被废弃)。

var str = "After Effects";
str.substr(6, 7);  // 返回 "Effects"

8、替换字符串

可以使用 replace() 方法替换字符串中的某个部分。

var text = "photoshopTEA";
var newText = text.replace("photoshop", "media"); // "mediaTEA"

9、拆分字符串

split(separator) 方法可以将字符串拆分成数组。

var text = "After,Effects,Expressions";
var words = text.split(",");  // ["After", "Effects", "Expressions"]

split(",") 以 , 作为分隔符拆分字符串,返回数组。

10、正则匹配

After Effects 字符串方法支持正则表达式。

匹配模式是一个字符序列,它使用特殊的符号(如 \d, \w, . 等)来定义要匹配的文本规则。通常放在 /.../ 之间。

var str = "After Effects, mediaTEA 2025";

var matches = str.match(/(m|a)\w+\s\d+/gi);

matches;  // 返回 ["mediaTEA 2025"]

正则表达式 /(m|a)\w+\s\d+/gi 用于匹配以 m 或 a 开头的单词,后跟一个或多个字母/数字/下划线(\w+),然后是空格(\s),最后是一个或多个数字(\d+)的字符串。修饰符 g 表示全局匹配,i 表示忽略大小写。

请参阅:

“点赞有美意,赞赏是鼓励”