javascript - 匹配最后一个字符,如果正则表达式为空,则获取倒数第二个字符

标签 javascript regex string-matching

我正在尝试获取字符串的最后一个字符,但前提是它与以下正则表达式匹配:

/\W/

如果不匹配,我希望它移动到下一个最后一个字符并再次进行测试,直到找到匹配。

function getLastChar(s) {
    var l = s.length - 1;

    return s[l - i]; // need logic to keep checking for /\W/
}
getLastChar('hello.'); // returns '.', want it to return 'o'

如果字符不是字母/数字,我有以下如何匹配的想法;但是,我正在寻找一种更优雅的解决方案,该解决方案允许我使用三元 if()

返回单行上的最后一个匹配字符

if(string.match(/\W/) !== null){ //继续寻找匹配项,向后走。 }

最佳答案

/(\w)\W*$/

捕获一个 \w 字符,后跟零个或多个 \W 字符,锚定到主题的末尾。

[评论后编辑。]

关于javascript - 匹配最后一个字符,如果正则表达式为空,则获取倒数第二个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22702193/

相关文章:

javascript - 显示显示长度 ="none";使用 JavaScript

javascript - 匹配包含单词的整个句子,即使句子跨越多行

ruby 正则表达式 : ^ matches start of line even without m modifier?

php - 与 mysql DB 匹配单词列表的前缀

C++ 匹配文件中的字符串并获取行号

python - 如何在 python 中找到在另一个子字符串之后第一次出现的子字符串?

javascript - jQuery 的触发方法在文档就绪时无法正常工作

javascript - 在draggable + jquery ui中用内部元素画线

javascript - 解构具有多个分隔符的字符串

c++ - 类似于函数的宏不接受嵌套的#define