ホームページ  >  記事  >  ウェブフロントエンド  >  ロスレス HTML 表示実装の Javascript 記事インターセプト部分 code_javascript スキル

ロスレス HTML 表示実装の Javascript 記事インターセプト部分 code_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 18:28:21961ブラウズ

コンテンツは HTML 形式であるため、コンテンツの最初の数文字を直接インターセプトすることは明らかに不適切です。また、すべての HTML 形式を直接削除してインターセプトした場合、オンラインで検索した後、次のコードを記述することで基本的な要件を満たすことができます。 (デバッグしやすいのでjsで書いています)

コードをコピー コードは次のとおりです:

var br = {};
br.spTags = ["img","br","hr"];/*ペアで表示する必要がないタグ*/
br.contain = function (arr,it){
for(var i=0,len=arr.length;iif(arr[i]==it){
return true; 🎜>}
}
return false;
}
br.subArtc = function(article,worldNum){
var result = []
/*最初に必要な文字列をインターセプトします*/
var wcount = 0;
var startTags = [],endTags = [];
var isInTag = false; len;i ){
var w = 記事
result.push(w);
if(w=="<"){
isInTag = true; }
if( !isInTag){
wcount ;
if(wcount==worldNum){
break;
}
}
if(w=="> "){
isInTag = false;
}
}
/*文字列を処理します*/
var j=0;
isInTag = false;
var isStartTag = true ;
var tagTemp = "";
while(jif(isInTag){
if(w==">" || w= =" " || w=="/"){
isInTag = false;
startTags.push(tagTemp); >endTags.push (tagTemp);
tagTemp = "";
}
if(isInTag){
tagTemp =w; if(w= ="<"){
isInTag = true;
isStartTag = false; }else{
isStartTag = true;
}
}
j ;
}
/*ペアで表示する必要のない img、br およびその他のタグを削除します*/
var newStartTags = [] ;
for(var x=0,len=startTags.length;xif(!br.contain(br.spTags,startTags[x]) ){
newStartTags.push(startTags[x]);
}
}
/*終了タグを追加しません*/
var unEndTagsCount = newStartTags.length - endTags.length; >while(unEndTagsCount>0 ){
result.push("<")
result.push("/")
result.push(newStartTags[unEndTagsCount-1]); result.push("> ;");
unEndTagsCount--;
return result.join("");


基本的な考え方:

1. マークをバイパスしてコンテンツの実際の単語数を取得する コンテンツの最初の 100 単語を表示する必要がある場合は、マークの検索をバイパスして 100 番目の単語の実際のインデックスを取得します。 。次に、このインデックスの前の文字列をインターセプトします。

2. 取得した文字列を元に、文字列内に存在する開始タグと終了タグを取得します。注: ここでの開始タグは「<」で始まり、次の文字は「/」ではありません。

3. 2で取得した開始タグのうち、ペアで出現する必要のないタグを削除します。 br、img、hrなど。

4. 3で処理した開始タグと2で取得した終了タグを比較し、ペアになっていない場合は適切な位置でペアにします。

この機能は厳密にはテストされていません。興味がある場合は、テストに協力してください。より良いアイデアがある場合は、ディスカッションに返信することもできます。

著者: cnblogs 自慢
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。