Как найти и заменить части строки в случае несоответствующего способа? - PullRequest
0 голосов
/ 14 августа 2011

У меня есть простой пример. Я хочу заменить текст, например, add ann.c, так же, как я заменяю его в add Ann.c.Как это сделать с помощью jQuery?

Здесь , как я это сделал: $("#tags").val().replace(dictionary[j]['name'].toLowerCase(), dictionary[j]['realvalue']); Извините за беспокойство ... но любые более оптимальные решения приветствуются.

Ответы [ 3 ]

3 голосов
/ 14 августа 2011

Используйте String.replace() с объектом регулярного выражения, для которого установлен флаг i (без учета регистра).

Вы можете безопасно построить объект регулярного выражения из произвольной строки при условии, что сначала экранируйте эту строку .

2 голосов
/ 14 августа 2011
$("#tags").val().toLowerCase(); // will convert all uppercase characters to lowercase ones

Затем он ищет, например, ann.c, поэтому вам нужно изменить объект:

var dictionary = jQuery.parseJSON('[ { "name": "ann.c",  "realvalue": "./34534j435345j3b3"  }, {   "name": "ann.h",   "realvalue": "./333dfsdGjh45j3b5" }]');

Кстати, как насчет:

var dictionary = [ { "name": "ann.c",  "realvalue": "./34534j435345j3b3" },
                   { "name": "ann.h",  "realvalue": "./333dfsdGjh45j3b5" } ];

http://jsfiddle.net/pimvdb/uDdbq/18/

1 голос
/ 14 августа 2011
var text = $("#tags").val().replace(RegExp(dictionary[j]['name'],"i"), dictionary[j]['realvalue']);

Вы можете преобразовать строку в регулярное выражение и добавить к нему регистр без учета регистра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...