对于您的具体示例,@Steve 的答案会很好,因为您正在测试字符串末尾的特定条件。但是,如果您想针对更复杂的字符串进行测试,您还可以考虑使用正则表达式(也称为 RegEx)。该 Mozilla 文档有一个关于如何在 JavaScript 中使用正则表达式的优秀教程。
要创建一个正则表达式模式并使用它来测试您的字符串,您可以执行以下操作:
const regex = /:\s*$/;
// All three will output 'true'
console.log(regex.test('foo:'));
console.log(regex.test('foo: '));
console.log(regex.test('foo: '));
// All three will output 'false'
console.log(regex.test('foo'));
console.log(regex.test(':foo'));
console.log(regex.test(': foo'));
...正则表达式/:\s*$/
可以这样解释:
/ Start of regex pattern
: Match a literal colon (:)
\s Right afterward, match a whitespace character
* Match zero or more of the preceding characters (the space character)
$ Match at the end of the string
/ End of regex pattern
您可以使用Regexr.com对您提出的不同正则表达式模式进行实时测试,您可以在文本框中输入示例文本以查看您的模式是否匹配。
正则表达式是一个强大的工具。在某些情况下您想使用它们,而在其他情况下则过大。对于您的特定示例,仅使用简单.endsWith()
的方法更直接,并且很可能是首选。如果您需要在 JavaScript 函数无法解决的情况下进行复杂的模式匹配,正则表达式可以解决问题。值得一读,这是另一个放入工具箱的好工具。