2016-11-09 274 views
-1

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

var foo = "The quick brown fox jumps over the lazy dog | \ + ! ?"; 

我想展示的是:

var foo = "The quick brown fox jumps over the lazy dog"; 

“G”作为最后一个字母,但我不想硬编码它,我想让它工作,如果有任何信件在最后的位置。

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

谢谢!

回答

0
匹配

通过该部分的结果:在更换

[^A-Za-z]*$ 

,并使用空字符串。

  • [^A-Za-z]*除了字母零次或多次任意字符在该行的末尾($

Demo

+0

这工作就像一个魅力,谢谢! – kneles90

+0

嘿伙计,一个简单的问题 - 我怎样才能将'A-Za-z'正则表达式改为除'|'外的任何字符 - 竖条? – kneles90

+0

@ kneles90 do'[^ |] * $'' – heemayl

0

试试这个:

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

\1 

Explanation

  1. ([A-ZA-Z])相匹配的字母代替
  2. (?!。 * [A-Za-z])看看该字符后面是否有字母表
  3. 若是然后拍摄线
0

This regex将匹配从第一非字母字符从任何语言";匹配并不包括这些以保持字符串完整。

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

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

  • [^\pL]发现第一个非字母字符,\pL匹配任何语言
  • *?任何封信后面所有的非字母字符
  • (?=";)是一个积极的向前看,这意味着在接下来的字符是";比赛将停止,当字符串结束时。
+0

'[^ \ pL]'可以写成'\ PL'。 – Toto

相关问题