Member 12978134 Ответов: 4

Как удалить специальные символы в файле. aspx


Например, какой самый простой способ

Функция eval("some_phone").Метод toString()

вывести 7078884524 вместо if (707) 888 4524 ?

Что я уже пробовал:

Я пробовал гуглить подобные вопросы, но не нашел ничего подходящего

4 Ответов

Рейтинг:
2

Patrice T

Цитата:
Как удалить специальные символы в файле. aspx
В принципе, у вас есть 2 решения:
- Создайте свой собственный фрагмент кода.
Scan every char in "(707) 888 4524"
   when a digit, append to result.


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

Оба решения сложны только для очень начинающих и являются хорошими упражнениями для практики.

Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
Это показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]


Рейтинг:
2

Peter Leow

Попробуй Строка.Метод Замены (String, String) (System)[^]

String phone = "(707) 888 4524";
Console.WriteLine(phone);
phone = phone.Replace(")", "");
phone = phone.Replace("(", "");
phone = phone.Replace(" ", "");
Console.WriteLine(phone);


Рейтинг:
1

Richard Deeming

Что-то вроде этого:

protected static string AlphaNumericOnly(string value)
{
    if (string.IsNullOrEmpty(value)) return string.Empty;
    
    char[] result = new char[value.Length];
    int resultIndex = 0;
    
    foreach (char c in value)
    {
        if ('0' <= c && c <= '9')
        {
            result[resultIndex] = c;
            resultIndex++;
        }
        else if ('a' <= c && c <= 'z')
        {
            result[resultIndex] = c;
            resultIndex++;
        }
        else if ('A' <= c && c <= 'Z')
        {
            result[resultIndex] = c;
            resultIndex++;
        }
    }
    
    if (resultIndex == 0) return string.Empty;
    if (resultIndex == value.Length) return value;
    return new string(result, 0, resultIndex);
}

<asp:Literal runat="server" mode="Encode"
    Text='<%# AlphaNumericOnly(Eval("Field", "{0}")) %>'
/>


Member 12978134

спасибо Ричард

Рейтинг:
0

Bryian Tan

Вы также можете попробовать что-то вроде приведенного ниже. Регулярное выражение заменит любые символы, отличные от 0-9, пустой строкой.

<td ><%#  System.Text.RegularExpressions.Regex.Replace(Eval("Phone", "{0}"), "[^0-9]+", "")%> </td>