Регулярное выражение для первой адресной строки со специальными требованиями [дубликат]

Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.

например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.

public Class myClass
{
   public int prop1 {get;set;}
}

Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref.prop1 = 1;  //This line throws error
     }
}

выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.

Чтобы исправить это, вам нужно создать экземпляр (присвоить объект ссылке на этот класс).

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref = new myClass();
        ref.prop1 = 1;  
     }
}
40
задан ParoX 13 September 2010 в 01:04
поделиться

5 ответов

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

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

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

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

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

19
ответ дан Guffa 24 August 2018 в 05:39
поделиться

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

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

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

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

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

0
ответ дан Radu Simionescu 24 August 2018 в 05:39
поделиться

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

1
ответ дан T.J. Crowder 24 August 2018 в 05:39
поделиться
Другие вопросы по тегам:

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