регулярное выражение?

#javascript #regex

#javascript #регулярное выражение

Вопрос:

У меня есть тег, подобный приведенному ниже:

 <p id="questionText"><span class="qn" id="qn"> 1 </span>  hello? * </p> 
  

Я хочу получить текст ( "Hello" ) из этого.

Я успешно сделал это с помощью следующего кода, но .textContent не работает в IE

  questionText = $('questionText-').textContent;
 questionText = questionText.replace(/d /g,"");
 questionText = questionText.replace("*","");
 return questionText.replace(/^s*|s*$/g,'') ;
  

Как я могу изменить код, чтобы он работал в обоих?

Комментарии:

1. $('questionText-') недопустимый селектор. Вы, вероятно, хотели использовать, $('#questionText') если вы используете jQuery или $('questionText') если $ это просто псевдоним getElementById .

Ответ №1:

я думаю, вам нужен фреймворк jquery. я думаю, вам следует использовать .text() или .html()

http://api.jquery.com/text/

http://api.jquery.com/html/

удачи

Комментарии:

1. Спасибо, но я хочу в самом javascript

2. Не совсем понимаю, чего вы хотите. в самом javascript??

Ответ №2:

Получить hello? * часть вместо целого 1 hello? * было бы намного лучше. Для этого нам нужно получить второй дочерний узел #questionText:

 var qt = $("#questionText")[0];
qt.normalize();
var hello = qt.childNodes[1].data;
alert(hello); // outputs "  hello? * "
  

Теперь мы можем отфильтровать строку на наличие нежелательных символов, подобных этому,

 hello = hello.
            replace(/[^a-zA-Z ]/g, "").
            trim();
alert(hello); // outputs "hello"
  

Все, что осталось, это написать первую букву заглавной.