новая версия php, вызывающая ошибку с preg_replace [duplicate]

Ссылка NullReferenceException или Object, не установленная на экземпляр объекта, возникает, когда объект класса, который вы пытаетесь использовать, не создается. Например:

Предположим, что у вас есть класс с именем Student.

public class Student
{
    private string FirstName;
    private string LastName;
    public string GetFullName()
    {
        return FirstName + LastName;
    }
}

Теперь рассмотрим другой класс, в котором вы пытаетесь получить полное имя учащегося.

public class StudentInfo
{      
    public string GetStudentName()
    {
        Student s;
        string fullname = s.GetFullName();
        return fullname;
    }        
}

Как видно из вышеприведенного кода, оператор Student s - объявляет только переменную типа Student, обратите внимание, что класс Student не создается в этой точке. Следовательно, когда выполняется выполнение инструкции s.GetFullName (), она выкинет исключение NullReferenceException.

40
задан ParoX 13 September 2010 в 01:04
поделиться

5 ответов

Сбежать с помощью \- должно быть хорошо, но вы также можете попробовать поставить его в начале или в конце класса символов. Это должно работать для вас:

/^[a-zA-Z0-9._-]+$/
71
ответ дан Mark Byers 26 August 2018 в 23:45
поделиться

Выйти из дефиса с помощью \- является правильным способом.

Я проверил, что выражение /^[a-zA-Z0-9.\-_]+$/ действительно позволяет дефисы. Вы также можете использовать класс \w, чтобы сократить его до /^[\w.\-]+$/.

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

20
ответ дан Guffa 26 August 2018 в 23:45
поделиться

The \ - возможно, не работал, потому что вы передали весь материал с сервера строкой. Если это так, сначала вы должны убежать \, поэтому серверная программа также может обрабатывать его.

  • В строке на стороне сервера: \\ -
  • На клиентская сторона: \ -
  • В регулярном выражении (обложки): -

Или вы можете просто положить в и [] скобки.

0
ответ дан Máthé Endre-Botond 26 August 2018 в 23:45
поделиться

Более общий способ сопоставления дефисов заключается в использовании символьного класса для дефиса и тире («\ p {Pd}» без кавычек). Если вы имеете дело с текстом из разных культур и источников, вы можете обнаружить, что существует больше типов делений, а не только один символ. Вы можете добавить, что внутри выражения []

0
ответ дан Radu Simionescu 26 August 2018 в 23:45
поделиться

\- должен работать, чтобы избежать - в диапазоне символов. Можете ли вы процитировать то, что вы тестировали, когда это не показалось? Потому что он работает: http://jsbin.com/odita3

2
ответ дан T.J. Crowder 26 August 2018 в 23:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: