我想从键盘替换最后一个输入字符为“”
我的字符串输入是
样本串
"<p><strong>abscd sample text</strong></p>"
"<p>abscd sample text!</p>"
我的最后一个字符是动态的,可以是任何东西之间到z,A至Z,0到9,任何特殊字符([〜/ <>&(。])。因此,我需要只替换字符
例如,在样品1我需要更换“t”和在有此需要的样品2,以取代“!”
我想下面的代码。 但它没有ID为我工作
var replace = '/'+somechar+'$/';
任何方式做到这一点?
第一步
以取代在字符串中的字符,使用replace()
的JavaScript功能。 这里是MDN规格:
返回与一些或替换替换模式的所有匹配一个新的字符串。 该图案可以是一个字符串或一正则表达式,和替换可以是字符串或一个函数被调用为每个匹配。
第二步
你需要位置上的字符,通过正则表达式来代替。 你想替换字符串的最后一个字符 ,这可以表示为/(.+)(.)$/。 .
代表任意字符, +
意味着一个以上的字符。 这里(.+)
匹配的最后一个之前的所有字符。 (.)
匹配的最后一个字符。
什么要替换为第二个括号中的一个。 因此,使用与第一支架匹配的相同的字符串$1
和任何之后更换。
这里是为了实现你的意图的代码:
text = 'abscd sample text';
text.replace(/(.+)(.)$/, '$1!');
你真的需要使用正则表达式? 如何str = str.slice(0, -1);
? 这将删除最后一个字符。
如果你需要更换特定的字符,像这样做:
var replace = new RegExp(somechar + '$');
str = str.replace(replace, '');
不能使用斜线的字符串来构造正则表达式。 这是PHP不同,例如。
我真的不明白你想更换一下哪些字符,但我认为,你应该在JS使用替代()函数: http://w3schools.com/jsref/jsref_replace.asp
string.replace(regexp/substr,newstring)
这意味着所有的键盘字符:
[\t\n ./<>?;:"'`!@#$%^&*()[]{}_+=-|\\]
而这种方式,您可以取代之前所有的键盘字符<
标志""
string.replace("[a-zA-Z0-9\t\n ./<>?;:"'`!@#$%^&*()[]{}_+=-|\\]<","<")