我想将键盘上的最后一个输入字符替换为''
我的字符串输入
示例字符串
"<p><strong>abscd sample text</strong></p>"
"<p>abscd sample text!</p>"
我的最后一个角色是动态的,可以是任何东西 a到z,A到Z,0到9,任何特殊字符([〜/&lt;&gt;&amp;(。))。 所以我需要替换那个角色
例如在样本1中我需要替换“t”,而在样本2中需要替换“!”
我试过下面的代码。但它对我不起作用
var replace = '/'+somechar+'$/';
有什么办法吗?
答案 0 :(得分:4)
替换字符串中的字符,使用javaScript的replace()
函数。 Here是MDN规范:
返回一个新字符串,其中一个或所有匹配的模式由替换替换。模式可以是字符串或RegExp,替换可以是字符串或要为每个匹配调用的函数。
您需要通过正则表达式定位要替换的角色。您想要替换字符串的最后一个字符,这可以表示为/(.+)(.)$/。 .
代表任何字符,+
表示不止一个字符。这里(.+)
匹配最后一个字符之前的所有字符。 (.)
匹配最后一个字符。
您想要替换的是第二个括号内的那个。因此,您使用第一个括号中匹配的相同字符串$1
,并替换后面的任何内容。
以下是实现您意图的代码:
text = 'abscd sample text';
text.replace(/(.+)(.)$/, '$1!');
答案 1 :(得分:1)
你真的需要使用正则表达式吗? str = str.slice(0, -1);
怎么样?这将删除最后一个字符。
如果您需要替换特定字符,请执行以下操作:
var replace = new RegExp(somechar + '$');
str = str.replace(replace, '');
您不能在字符串中使用斜杠来构建RegEx。例如,这与PHP不同。
答案 2 :(得分:0)
我真的不明白你想要替换哪个角色,但我认为你应该在JS中使用replace()函数:http://w3schools.com/jsref/jsref_replace.asp
string.replace(regexp/substr,newstring)
这意味着所有键盘字符:
[\t\n ./<>?;:"'`!@#$%^&*()[]{}_+=-|\\]
这样您可以在<
标记之前将所有键盘字符替换为""
string.replace("[a-zA-Z0-9\t\n ./<>?;:"'`!@#$%^&*()[]{}_+=-|\\]<","<")