Регулярное выражение для удаления специальных символов в тегах 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, поэтому мне нужно удалить / также, поэтому я использую регулярное выражение.

Ответы на вопрос(1)

Ваш ответ на вопрос