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

时间:2016-11-09 12:01:04

标签: 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模式或插件?

谢谢!

3 个答案:

答案 0 :(得分:0)

试试这个:

  ([A-Za-z])(?!.*[A-Za-z]).*

并替换为

\1

Explanation

  1. ([A-Za-z])匹配字母
  2. (?!。* [A-Za-z])查看字符后跟无字母
  3. 如果是,则捕获行的结果

答案 1 :(得分:0)

通过以下方式匹配该部分:

[^A-Za-z]*$ 

并使用null string替换。

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

Demo

答案 2 :(得分:0)

This regex将从任何语言的第一个非字母字符匹配到";,并且不会包含这些字符以保持字符串不变。

[^\pL]*?(?=";)

然后用空字符串替换。请注意,您需要unicode标志u才能使任何语言工作。如果您只需要ASCII字符,则可以将\pL替换为a-zA-Z

  • [^\pL]找到第一个非字母字符,\pL匹配任何语言的任何字母
  • *?找到所有下一个非字母字符
  • (?=";)是一个积极的预测,这意味着当字符串结束时,下一个字符为";时匹配将停止。