Как заменить последний совпавший символ в строке, используя JavaScript - PullRequest
1 голос
/ 20 февраля 2012

я хочу заменить последний введенный символ с клавиатуры на ''

Мой строковый ввод

образец строки

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

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

Мой последний символ является динамическим, который может бытьлюбая вещь от a до z, от A до Z, от 0 до 9, любые специальные символы ([~ / <> & (.]). Поэтому мне нужно заменить только этот символ

, например, в примере 1 iнужно заменить «t», а в образце 2 нужно заменить «!»

Я попробовал приведенный ниже код. Но он не работал для меня

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

Есть ли способ сделать это?

Ответы [ 3 ]

4 голосов
/ 20 февраля 2012

Шаг первый

, чтобы заменить символ в строке, используйте функцию replace() javaScript. Здесь - это спецификация MDN:

Возвращает новую строку, в которой некоторые или все совпадения шаблона заменены заменой.Шаблон может быть строкой или RegExp, а замена может быть строкой или функцией, которая будет вызываться для каждого совпадения.

Шаг второй

вам необходимо определить местоположение символабыть замененным с помощью регулярного выражения.Вы хотите заменить последний символ строки, и это можно выразить как /(.+)(.)$/.. обозначает любой символ, + означает более одного символа.Здесь (.+) соответствует всем символам перед последним.(.) соответствует последнему символу.

То, что вы хотите заменить, это тот, который находится во вторых скобках.Таким образом, вы используете ту же строку, которая соответствует первой скобке, с $1 и заменяете все, что после нее.

Вот код для реализации вашего намерения:

text = 'abscd sample text';
text.replace(/(.+)(.)$/, '$1!');
1 голос
/ 20 февраля 2012

Вам действительно нужно использовать регулярные выражения? Как насчет str = str.slice(0, -1);? Это удалит последний символ.

Если вам нужно заменить определенного персонажа, сделайте это так:

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

Вы не можете использовать косые черты в строке для создания RegEx. Это отличается от PHP, например.

0 голосов
/ 20 февраля 2012

Я не совсем понимаю, какой символ вы хотите заменить каким, но я думаю, вы должны использовать функцию replace () в JS: http://w3schools.com/jsref/jsref_replace.asp

string.replace(regexp/substr,newstring)

Это означает все символы клавиатуры:

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

И таким образом вы можете заменить все символы клавиатуры до отметки < на ""

 string.replace("[a-zA-Z0-9\t\n ./<>?;:"'`!@#$%^&*()[]{}_+=-|\\]<","<")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...