用jquery在字符串中查找最后一个单词的第一个字母(字符串可以有多个单词)

Posted

技术标签:

【中文标题】用jquery在字符串中查找最后一个单词的第一个字母(字符串可以有多个单词)【英文标题】:Find the first letter of the last word with jquery inside a string (string can have multiple words) 【发布时间】:2010-03-05 10:26:33 【问题描述】:

嘿,有没有办法找到字符串中最后一个单词的第一个字母?字符串是 XML 解析器函数的结果。在 each() 循环中,我获取所有节点并将每个名称放在一个变量中,如下所示: var person = xml.find("name").find().text()

现在人拿着一个字符串,它可能是:

阿纳玛利亚·阿甘正传 约翰·洛克

如您所见,第一个字符串包含 3 个单词,而第二个字符串包含 2 个单词。

我需要的是最后一个单词的第一个字母:“G”,“L”,

我如何做到这一点? TY

【问题讨论】:

【参考方案1】:

应该这样做:

var person = xml.find("name").find().text();

var names = person.split(' ');
var firstLetterOfSurname = names[names.length - 1].charAt(0);

【讨论】:

如果需要,可以使用 re:person.split(/\s+/)进行拆分 抱歉,没有看到编辑 -> 现在我看到 THX 标记 B 绝对精彩!我需要几分钟来理解它。拆分标准是空格(''),所以我们在名称中得到子字符串。你得到最后一个单词 (names.length-1) 因为长度从 1 开始计数,我想得到第一个字符!!!杰出的!怪物杀戮,势不可挡!我已经开始使用 javascript 循环遍历所有字母和计数,但这要好得多。 THX 由于数组是从零开始的,names.length 为我们提供了数组边界之外的索引,因此names.length - 1。除了你在现场。【参考方案2】:

即使您的字符串包含单个单词,此解决方案也可以使用。它返回所需的字符:

myString.match(/(\w)\w*$/)[1];

解释:“匹配一个单词字符(并记住它)(\w),然后匹配任意数量的单词字符\w*,然后匹配字符串的结尾$”。换句话说:“匹配字符串末尾的一系列单词字符(并记住这些单词字符中的第一个)”。 match 返回一个数组,整个匹配在[0] 中,然后在[1][2] 等中返回记忆的字符串。这里我们想要[1]

正则表达式包含在 javascript 中的 / 中:http://www.w3schools.com/js/js_obj_regexp.asp

【讨论】:

双杀! - 非人类!! - GODLIKE.. 什么意思:/ 和 \ 什么意思:W 和 S 什么意思:$ 和 * 和 + 你可以翻译 myString.match(/(\w)\w*$/)[1];用文字(就像一个伪解决方案,以便我能理解)【参考方案3】:

你可以用正则表达式破解它:

'Marry Jo Poppins'.replace(/^.*\s+(\w)\w+$/, "$1");      // P
'Anamaria Forrest Gump'.replace(/^.*\s+(\w)\w+$/, "$1"); // G

否则 Mark B 的答案也很好:)


编辑:

Alsciende 的 regex+javascript 组合 myString.match(/(\w)\w*$/)[1] 可能比我的更通用。

正则表达式解释

/^.*\s+(\w)\w+$/
^     beginning of input string
.*    followed by any character (.) 0 or more times (*)
\s+   followed by any whitespace (\s) 1 or more times (+)
(     group and capture to $1
  \w  followed by any word character (\w)
)     end capture
\w+   followed by any word character (\w) 1 or more times (+)
$     end of string (before newline (\n))

Alsciende 的正则表达式

/(\w)\w*$/
(     group and capture to $1
  \w  any word character
)     end capture
\w*   any word character (\w) 0 or more times (*)

总结

正则表达式非常强大,或者您可能会说,“Godlike!”如果您想了解更多信息,Regular-Expressions.info 是一个很好的起点。

希望这会有所帮助:)

【讨论】:

主宰!但是现在我想这些是正则表达式有点难以理解?我开始学习 reg.expressions 一次,但那真是一团糟……我想:别管蛇了……如果你不需要它。但这很酷,也许你可以解释或链接给导师?谢谢

以上是关于用jquery在字符串中查找最后一个单词的第一个字母(字符串可以有多个单词)的主要内容,如果未能解决你的问题,请参考以下文章

华为python机试题目:整数与IP地址间的转换图片整理字串的连接最长路径查找提取不重复的整数字符串合并处理字符串最后一个单词的长度删除字符串中出现次数最少的字符

Java中字符串数组中的最长公共前缀

JQUERY UI自动完成,最后一个字改变颜色

Vim学习1移动光标

用jquery在一个句子中的两个单词下划线

如何在 PHP 中获取句子的第一个单词?