Регулярное выражение для удаления специальных символов в тегах JSTL
Я работаю над приложением Spring, и на странице JSPX мне нужно динамически загрузить некоторые значения со страницы свойств и установить их в раскрывающемся списке с помощью тега параметров. Мне нужно использовать один и тот же текст для значения параметров и для отображения, но для значения параметров мне нужно удалить все специальные символы.
Например, если значение дяди по материнской линии, то мне нужно
<code><option value="MaternalUncle">Maternal Uncle</option> </code>
Что я получаю
<code><option value="Maternal Uncle">Maternal Uncle</option> </code>
Есть 2 приложения, которые могут использовать эту страницу, и какой файл свойств загружать, зависит от приложения. Если я загружаю значения для приложения 1, тогда значения отображаются правильно, Последнее значение в приложении app1 - это «Другие». и не имеет никаких специальных символов. Для приложения 2 оно не урезает пробелы, где последним значением является «Maternal Uncle». repOptions в коде - это ArrayList со значениями, загруженными из файла свойств. Вот мой код:
<code><select name="person" id="person"> <option value="na">Select the relationship</option> <c:forEach items="${repOptions}" var="repOption"> <option value="${fn:replace(repOption, '[^A-Za-z]','')}">${repOption}</option> </c:forEach> </select> </code>
Первое приложение удаляет пробелы, так как это значение является четвертым в списке из 9. Для app2 это последнее значение, и регулярное выражение не работает. Если я поставлю Maternal Uncle в качестве первого свойства для app2, то это будет работать нормально, но для этого нужно иметь последний вариант.
<code> <option value="${fn:replace(repOption, ' ','')}"> </code>
работает для пробелов, но могут быть такие значения, как Brother / Sister, поэтому мне нужно удалить / также, поэтому я использую регулярное выражение.