如何使用JavaScript来取代过去的,匹配的字符串(How to replace last ma

2019-09-27 18:11发布

我想从键盘替换最后一个输入字符为“”

我的字符串输入是

样本串

"<p><strong>abscd sample text</strong></p>"

"<p>abscd sample text!</p>"

我的最后一个字符是动态的,可以是任何东西之间到z,A至Z,0到9,任何特殊字符([〜/ <>&(。])。因此,我需要只替换字符

例如,在样品1我需要更换“t”和在有此需要的样品2,以取代“!”

我想下面的代码。 但它没有ID为我工作

 var replace = '/'+somechar+'$/';

任何方式做到这一点?

Answer 1:

第一步

以取代在字符串中的字符,使用replace()的JavaScript功能。 这里是MDN规格:

返回与一些或替换替换模式的所有匹配一个新的字符串。 该图案可以是一个字符串或一正则表达式,和替换可以是字符串或一个函数被调用为每个匹配。

第二步

你需要位置上的字符,通过正则表达式来代替。 你想替换字符串的最后一个字符 ,这可以表示为/(.+)(.)$/。 . 代表任意字符, +意味着一个以上的字符。 这里(.+)匹配的最后一个之前的所有字符。 (.)匹配的最后一个字符。

什么要替换为第二个括号中的一个。 因此,使用与第一支架匹配的相同的字符串$1和任何之后更换。

这里是为了实现你的意图的代码:

text = 'abscd sample text';
text.replace(/(.+)(.)$/, '$1!');


Answer 2:

你真的需要使用正则表达式? 如何str = str.slice(0, -1); ? 这将删除最后一个字符。

如果你需要更换特定的字符,像这样做:

var replace = new RegExp(somechar + '$');
str = str.replace(replace, '');

不能使用斜线的字符串来构造正则表达式。 这是PHP不同,例如。



Answer 3:

我真的不明白你想更换一下哪些字符,但我认为,你应该在JS使用替代()函数: http://w3schools.com/jsref/jsref_replace.asp

string.replace(regexp/substr,newstring)

这意味着所有的键盘字符:

[\t\n ./<>?;:"'`!@#$%^&*()[]{}_+=-|\\] 

而这种方式,您可以取代之前所有的键盘字符<标志""

 string.replace("[a-zA-Z0-9\t\n ./<>?;:"'`!@#$%^&*()[]{}_+=-|\\]<","<")


文章来源: How to replace last matched character in string using javascript