9

付箋をページに追加する小さな Web アプリケーションをセットアップしました。これは、JavaScript/jQuery をよりよく学習するための単なるプロジェクトであり、適切なプロジェクトのように思えました (私は JS/jQuery を初めて使用します)。

これはフィドルです:http://jsfiddle.net/mitchbregs/mWaPz/

このウェブサイトを見つけました: http://www.hscripts.com/scripts/JavaScript/remove-html-tag.php

コードを次のように実装しました。

function stripHTML(){
var re = /(<([^>]+)>)/gi;
for (i=0; i < arguments.length; i++)
arguments[i].value=arguments[i].value.replace(re, "")
}

それでもうまくいきませんでした。

問題: 誰かがテキストエリアにテキストを入力するときに、この " <b>Hi</b>" のようなものを入力すると、入力から " <b>" タグが取り除かれ、テキストだけが残るようにする必要があります。

誰かが私を助けてくれたら、それは素晴らしいことです..ありがとう!

4

6 に答える 6

14
var textAreaValue = "text <br /> more text";
var strippedText = $("<div/>").html(textAreaValue).text();​

そして、ここにFiddleがあります。

于 2012-08-18T22:24:57.463 に答える
12

3 つの問題があります。1 つは、メソッドが適切に返されないことです (これは、メソッドを作成した人のせいです)。次に、 内$(document).ready()でメソッドを定義しているため、(少なくとも Chrome では) 見つかりません。第三に、あなたはそれを正しい方法で呼んでいません(onSubmitここでは決して使用されません)。

私は@ Joaoの方法を使用しました(したがって、彼の答えに賛成票を投じる必要があります)。この方法を使用して、ready()関数の外に移動しました:

function stripHTML(str){
  var strippedText = $("<div/>").html(str).text();
  return strippedText;
}​

また、ここでもそれを呼び出します:

var post = stripHTML($(".text_input").val())

これが実際のフィドルです: http://jsfiddle.net/ee3MH/

于 2012-08-18T22:30:06.183 に答える
5
function stripHTML(text){
   var regex = /(<([^>]+)>)/ig;
   return text.replace(regex, "");
}
// USE: var str = stripHTML('<b>test</b>');

デモ: http://jsfiddle.net/pisabev/eJzfw/3/

于 2012-08-18T22:22:51.940 に答える
0

jquery .text 関数を使用できますが、html を削除するよりもむしろエスケープします。

$(".myTxtBox").text("<b>this text will be displayed, even the b tag.");
于 2012-08-18T22:20:22.850 に答える
0

タグ自体だけでなく、内部タグが入力から完全に削除されるという点で、OPの要求に従ってこの質問に誰もうまく答えませんでした。だから、これがまさにそれを行う答えです(Fiddle):

var input = "This is <b>not</b>a successful test";
var output = $("<div/>").html(input).children().remove().end().text()
于 2014-07-08T20:46:48.300 に答える
-1
$("textarea.text_input").on('keyup', function() {
    this.value = this.value.replace(/<(.|\n)*?>/g, '');
});

フィドル

于 2012-08-18T22:33:13.287 に答える