查找最后一个空格字符的正则表达式

6

我正在寻找一种使用JavaScript的正则表达式,可以帮助我查找字符串中最后一个空格的索引。

我曾尝试在谷歌上寻找适合的正则表达式,但是没有成功。即使是SO-Question Regex to match last space character中也没有解决方案,因为该问题的目标是删除结尾处超过一个字符的内容。

正确的正则表达式是什么?


3
你无法使用"str".lastIndexOf(' ')吗? - Paul
2个回答

11

如我所评论的,我会直接使用lastIndexOf(),但这里有一个正则表达式的解决方案:

正则表达式/ [^ ]*$/可以找到字符串中最后一个空格字符。像这样使用它:

// Alerts 9
alert("this is a str".search(/ [^ ]*$/));

它确实在IE中运行。您可能想到的是Array.lastIndexOf,它并非在所有地方都受支持。 - ThiefMaster
2
正则表达式解决方案的最好之处在于可以轻松扩展以查找任何空格字符的最后索引,我以前在文本处理中需要这个功能,例如防止单词中间分割行:mystr.search(/\s\S*$/). 实际上,这可以轻松扩展以查找与任何字符类或类组合匹配的字符串中的最后一个字符。 - Ken Bellows

8
正确的解决方案不是使用正则表达式,而是使用字符串中内置的lastIndexOf方法。正则表达式的作用是匹配字符串,而不是提供索引(尽管分组匹配可能返回索引+长度而不是字符串——基于C的正则表达式库通常这样做是为了避免不必要的复制)。

谢谢,这解决了我的问题。我一直在固定思维模式下寻找正则表达式,而没有寻找其他解决方案, - Thariama

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接