当前位置: 首页 > 知识库问答 >
问题:

字符串中每个单词的第一个字母和标点符号

南门星河
2023-03-14

输入:Aliquam ipsum ex、tempus ornare semper ac、varius vitae nibh

输出:A i e, t o s a, v v n.

我需要一个javascript函数来解决这个问题。

我在尝试这样的事情:

js prettyprint-override">function short_verse(verse) {
  let result = [];

  verse.split(' ').map(word => word.charAt(0) != '' ? result.push(word.charAt(0)) : '');

  return result.join(" ");
}

let input = "Aliquam ipsum ex, tempus ornare semper ac, varius vitae nibh.",
  output = short_verse(input);

console.log(output);

故事:他们说你可以通过这种方式记忆课文因此,我创建了一个应用程序,它也将包含此功能。

它也适用于非ascii字符。例子:

输入:Aliquéam ipsum ex, tempés ornâre semper ac, valus vitaećbh.

输出:Ațe,t to s A,vî

注意:在我的例子中,罗马尼亚语的变音符号就足够了。


共有3个答案

楚昀
2023-03-14

以下函数应该适用于字符、数字和符号。魔法在正则表达式中;[a-zA-ZÀ-ÿăâîșțĂÂÎȘȚ] 提取所有包含字母数字和罗马尼亚字母字符的唯一单词(根据问题请求),\s提取所有空格字符,因为我们希望保留行间距,最后^\w\s提取所有非字母数字和非空格字符-又名符号:

function short_verse(verse) {
  let result = [];
  const tokens = verse.match(/([a-zA-ZÀ-ÿăâîșțĂÂÎȘȚ]+)|(\s)|[^\w\s]/g);
  const firstChars = tokens.map((token) => token.charAt(0));
  return firstChars.join('');
}

let input1 = "Aliquam ipsum ex, tempus ornare semper ac, varius vitae nibh.";
console.log(short_verse(input1));
let input2 = "Să fie o întindere între ape, și ea să despartă apele de ape."
console.log(short_verse(input2));
湛骏祥
2023-03-14

我们可以在这里使用正则表达式替换方法:

var input = "Aliquam ipsum ex, tempus ornare semper ac, varius vitae nibh.";
var output = input.replace(/(\w)\w*/g, "$1");
console.log(output);
杨乐意
2023-03-14

如果您只使用单词字符,您可以保留第一个字符并删除其余的单词字符。

\B匹配非单词边界,\w匹配一个或多个单词字符:

js lang-js prettyprint-override">const s = "Aliquam ipsum ex, tempus ornare semper ac, varius vitae nibh.";
console.log(s.replace(/\B\w+/g, ""));
 类似资料:
  • 问题内容: 在中,有没有一种方法可以获取字符串中每个单词的第一个字母?例如: 姓名: 迈克尔·约瑟夫·杰克逊 询问: 结果: MJJ 问题答案: 此函数将针对源字符串中的多个连续空格屏蔽您的结果: 结果:

  • 问题内容: 我正在尝试使程序执行以下操作: 假设我们有一个被设置为的被叫。我想输出给用户,每个单词的第一个字符。我尝试使用该方法,但是没有成功。 我的代码: 我试图检测是否有空格,那么我可以简单地获取下一个索引。谁能告诉我我在做什么错? 问题答案: 尝试按(空格)分割,然后获取每个单词的(第一个字符)并按如下方式打印:

  • 我有一个函数,应该把字符串中每个单词的第一个字母大写,但不知何故,它提供了不正确的结果,知道为什么吗?我需要修理一下。 所以输入:hello dolly输出:hello dolly。 空格计算正确,但大写不正确。

  • 问题内容: Java中是否内置了一个函数,该函数可以大写字符串中每个单词的第一个字符,而不会影响其他单词? 例子: jon skeet -> Jon Skeet miles o’Brien-> Miles O’Brien(B仍然是大写字母,这排除了标题大小写) old mcdonald-> Old Mcdonald* (Old McDonald也可以找到,但我不认为它会那么聪明。) 快速浏览一下J

  • 我试图编写一个函数,将字符串中每个单词的第一个字母大写(将字符串转换为标题大小写)。 例如,当输入是时,我希望是输出。然而,该函数返回。 这是我的代码:

  • 问题内容: 如何获得给定字符串的每个单词的首字母? 我找到了javascript方法,但不确定如何将其转换为php。 问题答案: 在空格上,然后使用表示法以数组形式访问结果字符串: 如果您期望多个空格可以分隔单词,请改用 或者,例如,如果非空格字符分隔单词(),请同时使用: