Javascript 删除字符串JS最后一个字母后的所有字符

Javascript 删除字符串JS最后一个字母后的所有字符,javascript,regex,string,Javascript,Regex,String,我想删除字符串中最后一个字母后的所有字符。例如,这是我要编辑的字符串: var foo = "The quick brown fox jumps over the lazy dog | \ + ! ?"; 我想展示的是: var foo = "The quick brown fox jumps over the lazy dog"; “g”是最后一个字母,但我不想硬编码,我想让它工作,如果有任何字母在最后一个位置 是否有一个RegExp模式或插件可以完成这项工作 谢谢 试试这个:

我想删除字符串中最后一个字母后的所有字符。例如,这是我要编辑的字符串:

var foo = "The quick brown fox jumps over the lazy dog   |   \ +   ! ?";
我想展示的是:

var foo = "The quick brown fox jumps over the lazy dog";
“g”是最后一个字母,但我不想硬编码,我想让它工作,如果有任何字母在最后一个位置

是否有一个RegExp模式或插件可以完成这项工作

谢谢

试试这个:

  ([A-Za-z])(?!.*[A-Za-z]).*
取而代之的是

\1

  • ([A-Za-z])与字母表匹配
  • (?!.[A-Za-z])查看字符后面是否没有字母
  • 如果是,则捕获该行的结果
  • 通过以下方式匹配该部分:

    [^A-Za-z]*$ 
    
    并使用空字符串替换

    • [^A-Za-z]*
      匹配除行尾字母以外的任何字符零次或多次(
      $

    将从任何语言的第一个非字母字符匹配到
    ”;
    ,并且不包括这些字符以保持字符串完整

    [^\pL]*?(?=";)
    
    然后用空字符串替换。请注意,任何语言都需要unicode标志
    u
    。如果只需要ASCII字符,可以用
    a-zA-Z
    替换
    \pL

    • [^\pL]
      查找第一个非字母字符,
      \pL
      匹配任何语言中的任何字母
    • *?
      查找所有下一个非字母字符
    • (?=“;)
      是一个正向前瞻,这意味着当字符串结束时,当下一个字符为
      “;
      时,匹配将停止

    [^\pL]
    可以编写
    \pL
    。嘿,伙计,一个简单的问题-如何将“a-Za-z”正则表达式更改为除“|”之外的任何字符-竖线?@kneles90 do
    [^ |]*$