js では、文字列は単語数に基づいてインターセプトされますが、url_javascript ヒントはインターセプトできません
May 16, 2016 pm 05:57 PM
url
インターセプト文字列
今日、次のリクエストを受け取りました。
1. テキストを入力し、出力テキストをインターセプトし、400 文字を保持します。
2. インターセプトされたコンテンツが URL である場合は、完全な URL アドレスを保持します。省略記号。....
----
URL を保持するのはさらに面倒です。特に 2 つの同一の URL がある場合、indexOf を使用してそれらの文字位置を取得することはできません。
処理結果:
関連コード:
コードをコピー コードは次のとおりです:
String.prototype.sizeAt = function(){
var nLen = 0;
for(var i = 0, end = this.length; i<end; i ){
nLen = this .charCodeAt(i)>128?2:1;
}
return nLen>}
String.prototype.cutStr = function(n, sCut){
if(this .sizeAt( ) <= n){
これを返します;
sCut = sCut ||
var max = n-sCut.sizeAt(); = 0;
var s = this;
for(var i =0,end = this.length;inLen = this.charCodeAt(i)>128?2 :1;
if(nLen>max){
s = this.slice(0,i);
s = sCut; return s.toString();
};
String.prototype.cutStrButUrl = function(n, sCut){
if(this.sizeAt() <=n){
これを返します。 toString() ;
sCut = sCut || "";
var s = this;
var aUrl = s.match(/https?://[a-zA-Z0-9] (.[a-zA-Z0-9] ) ([-_A-Z0-9a-z$. ! */ ,:;@&=?~#%]*)*/gi);
//最大文字数が URL の間にある場合、bCut は flase;
var bCut = true; 🎜>if(aUrl){
//各 URL を判定
for(var i=0, endI = aUrl.length;i<endI;i){
var sUrl = aUrl[ i]; 🎜>// 2 つの同一の URL が存在する可能性があります
var aP = s.split(sUrl);
var nLenURL = sUrl.sizeAt(); ;
for(j = 0, endJ = aP.length; jnCurr =aP[j].sizeAt(); sResult = sUrl;
//現在の単語数は max 未満ですが、URL を追加すると max を超えます: URL はインターセプトされます
if(nCurr < max && nCurr nLenURL>max){
s = sResult sCut;
break;
nCurr = nLenURL;
if(bCut === false)
};
}
if(bCut){
s = s.cutStr(n, sCut);
return s.toString() ; ;
console.log('通常の 20 文字のインターセプト'.cutStrButUrl(20,'...'));
console.log('通常の 20 文字のインターセプトですが、'.cutStrButUrl(20) ,'...'));
console.log('URL http://www.baidu.com の文字列を傍受できますか? '.cutStrButUrl(20,'...'));
console.log('http://www.baidu.com には同じ URL http://www.baidu.com? ' の文字列が 2 つあります。 CutStrButUrl(51, '...'));
var nLen = 0;
for(var i = 0, end = this.length; i<end; i ){
nLen = this .charCodeAt(i)>128?2:1;
}
return nLen>}
String.prototype.cutStr = function(n, sCut){
if(this .sizeAt( ) <= n){
これを返します;
sCut = sCut ||
var max = n-sCut.sizeAt(); = 0;
var s = this;
for(var i =0,end = this.length;i
if(nLen>max){
s = this.slice(0,i);
s = sCut; return s.toString();
};
String.prototype.cutStrButUrl = function(n, sCut){
if(this.sizeAt() <=n){
これを返します。 toString() ;
sCut = sCut || "";
var s = this;
var aUrl = s.match(/https?://[a-zA-Z0-9] (.[a-zA-Z0-9] ) ([-_A-Z0-9a-z$. ! */ ,:;@&=?~#%]*)*/gi);
//最大文字数が URL の間にある場合、bCut は flase;
var bCut = true; 🎜>if(aUrl){
//各 URL を判定
for(var i=0, endI = aUrl.length;i<endI;i){
var sUrl = aUrl[ i]; 🎜>// 2 つの同一の URL が存在する可能性があります
var aP = s.split(sUrl);
var nLenURL = sUrl.sizeAt(); ;
for(j = 0, endJ = aP.length; j
//現在の単語数は max 未満ですが、URL を追加すると max を超えます: URL はインターセプトされます
if(nCurr < max && nCurr nLenURL>max){
s = sResult sCut;
break;
nCurr = nLenURL;
if(bCut === false)
};
}
if(bCut){
s = s.cutStr(n, sCut);
return s.toString() ; ;
console.log('通常の 20 文字のインターセプト'.cutStrButUrl(20,'...'));
console.log('通常の 20 文字のインターセプトですが、'.cutStrButUrl(20) ,'...'));
console.log('URL http://www.baidu.com の文字列を傍受できますか? '.cutStrButUrl(20,'...'));
console.log('http://www.baidu.com には同じ URL http://www.baidu.com? ' の文字列が 2 つあります。 CutStrButUrl(51, '...'));
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7303
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1342
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1207
29



PHP 関数の紹介 - get_headers(): URL の応答ヘッダー情報を取得します

e からの NameResolutionError(self.host, self, e) の理由とその解決方法

Scrapy 最適化のヒント: 重複 URL のクロールを減らし、効率を向上させる方法

SpringBootの複数のコントローラにURLプレフィックスを追加する方法
