Maison développement back-end tutoriel php 看到PHP的一道面试题, 做了上, 不知道还有没好点方法

看到PHP的一道面试题, 做了上, 不知道还有没好点方法

Jun 13, 2016 pm 01:09 PM
em gt lt max str

看到PHP的一道面试题, 做了下, 不知道还有没好点方法
题目如下,
类似这样的aaasssddd字符串,写个函数CutStr($str,$max)实现截取:
1)如果$max大于$str的长度则返回$str
2)不包含在长度计算范围。
例:
如果CutStr("aaasssddd",6) 则返回aaasss.
如果CutStr("aaasssddd",4) 则返回aaas,不包含标签

我的第一反应就是正则, 然后就...

var str = "aaa<em>sss</em>ddd";

function cutStr(str, max) {
    // 首先把<em>和</em>先给剔除, 然后记录他们的位置
    var reg = new RegExp("(.*?)<em>(.*?)</em>(.*?)"); 
    var emSub = str.indexOf("<em>");
    var em2Sub = str.indexOf("</em>");
    var newstr = str.replace(reg, "$1$2$3");

    // 如果不是数字或是负数, 或者大于字符长度, 直接返回原字符
    if (!/^\d+$/.test(max) || max >= newstr.length) return str; 

    newstr = newstr.substring(0, max);
    if (max <= emSub) { //小于三
        return newstr;
    } else if (max <= em2Sub - 4 && max > emSub) { // 大于三, 小于六时(注: -4 是为了减去第一个<em>占去的位置)
        var tempReg = new RegExp("(\\w{" + emSub + "})(\\w*?)");
        return newstr.replace(tempReg, "$1<em>$2");
    } else { // 大于六
        var tempReg = new RegExp("(\\w{" + emSub + "})(\\w{" + (em2Sub - emSub - 4) + "}?)(\\w*?)");
        return newstr.replace(tempReg, "$1<em>$2</em>$3");
    }
}

alert(cutStr(str, 7));?
Copier après la connexion


觉得这个方法好笨, 有什么别的好点的方法吗?

想到了,, 原来这个这么简单,, 我把它想复杂了...

var str = "aaa<em>sss</em>ddd";  
  
function cutStr(str, max) {  
    var emSub = str.indexOf("<em>");  
    var em2Sub = str.indexOf("</em>");  
    // 如果不是数字或是负数, 或者大于字符长度, 直接返回原字符  
    if (!/^\d+$/.test(max) || max >= str.length - 9) return str; 
    else if(max > em2Sub-4) return str.substring(0, max + 9);
    else if(max > emSub) return str.substring(0, max + 4);
    else return str.substring(0, max);
}  
  
alert(cutStr(str, 7));  ?
Copier après la connexion

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Dec 29, 2023 pm 02:27 PM

De nombreux utilisateurs choisiront la marque Huawei lors du choix des montres intelligentes. Parmi eux, les Huawei GT3pro et GT4 sont des choix très populaires. De nombreux utilisateurs sont curieux de connaître la différence entre Huawei GT3pro et GT4. Quelles sont les différences entre Huawei GT3pro et GT4 ? 1. Apparence GT4 : 46 mm et 41 mm, le matériau est un miroir en verre + un corps en acier inoxydable + une coque arrière en fibre haute résolution. GT3pro : 46,6 mm et 42,9 mm, le matériau est du verre saphir + corps en titane/corps en céramique + coque arrière en céramique 2. GT4 sain : en utilisant le dernier algorithme Huawei Truseen5.5+, les résultats seront plus précis. GT3pro : ajout d'un électrocardiogramme ECG, d'un vaisseau sanguin et de la sécurité

iPhone 15 Pro Max vs iPhone 14 Pro Max : quelles sont les comparaisons et les différences entre eux ? iPhone 15 Pro Max vs iPhone 14 Pro Max : quelles sont les comparaisons et les différences entre eux ? Sep 19, 2023 pm 08:29 PM

iPhone 15 Pro contre iPhone 14 Pro : comparaison des spécifications Voici une comparaison des spécifications entre l'iPhone 15 Pro Max et l'iPhone 14 Pro Max : iPhone 15 Pro Max iPhone 14 Pro Max Taille de l'écran 6,7 pouces 6,7 pouces Technologie d'affichage Super Retina 2 000 nits Dimensions 6,29x3 0,02x0,32 pouces 6,33x3,06x0,31 pouces Poids 221 grammes 240 grammes

Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Aug 24, 2023 am 09:48 AM

Pourquoi l'outil Snipping ne fonctionne pas sous Windows 11 Comprendre la cause première du problème peut aider à trouver la bonne solution. Voici les principales raisons pour lesquelles l'outil de capture peut ne pas fonctionner correctement : L'assistant de mise au point est activé : cela empêche l'ouverture de l'outil de capture. Application corrompue : si l'outil de capture plante au lancement, il est peut-être corrompu. Pilotes graphiques obsolètes : des pilotes incompatibles peuvent interférer avec l'outil de capture. Interférence provenant d'autres applications : d'autres applications en cours d'exécution peuvent entrer en conflit avec l'outil de capture. Le certificat a expiré : une erreur lors du processus de mise à niveau peut provoquer ce problème. Solution simple. Celles-ci conviennent à la plupart des utilisateurs et ne nécessitent aucune connaissance technique particulière. 1. Mettez à jour les applications Windows et Microsoft Store

Comment utiliser HEIF Max (48 MP) et optimiser le stockage sur iPhone 14 Pro Comment utiliser HEIF Max (48 MP) et optimiser le stockage sur iPhone 14 Pro Sep 21, 2023 pm 02:13 PM

La dernière série d'iPhone Pro est équipée d'un puissant capteur de 48 MP qui garantit des photos très détaillées et d'une clarté cristalline pour capturer chaque instant précieux. Cependant, un inconvénient potentiel est la taille des images en pleine résolution, notamment celles au format ProRAW. Bien que l'espace de stockage maximum offert par l'iPhone soit de 512 Go, la capture de nombreuses images ProRAW (environ 75 MP chacune) et de vidéos (440 Mo par minute, 60 FPS) peut rapidement consommer votre espace de stockage. Cela peut poser des problèmes si vous envisagez d'utiliser votre iPhone comme appareil photo principal pour de grands projets ou des voyages. Mais ne serait-il pas formidable si vous pouviez prendre ces photos haute résolution de 48 MP sans vous soucier des limitations de stockage ? c'est rapide

Comparaison de la durée de vie de la batterie de toutes les séries d'iPhone 15 : l'iPhone 15 Plus bat le 15 Pro Max Comparaison de la durée de vie de la batterie de toutes les séries d'iPhone 15 : l'iPhone 15 Plus bat le 15 Pro Max Sep 30, 2023 pm 11:09 PM

Bien qu'Apple lancera le temps de lecture vidéo de l'iPhone pour informer les utilisateurs que la batterie de l'iPhone est presque disponible. Mais les utilisateurs normaux n’utilisent pas leur iPhone pour visionner des vidéos à longueur de journée. 7 iPhones testés pour leur endurance dans les applications quotidiennes. Comprend 7 modèles dont iPhone15ProMax, iPhone15Pro, iPhone15Plus, iPhone15, iPhone14ProMax, iPhone14 et iPhone13ProMax. En parcourant certaines applications quotidiennes, telles que Spotify, Zoom, Tiktok, Headspace, pensez aux applications, aux jeux, etc., nous pouvons voir la durée de vie de la batterie des différents iPhones. ce

Comment obtenir la valeur maximale du flux dans Java8 Comment obtenir la valeur maximale du flux dans Java8 May 14, 2023 pm 03:43 PM

Le flux de java8 prend maxpublicstaticvoidmain(String[]args){Listlist=Arrays.asList(1,2,3,4,5,6);Integermax=list.stream().max((a,b)->{if ( a>b){return1;}elsereturn-1;}).get();System.out.println(max);}Remarque : la taille est déterminée ici par des nombres positifs et négatifs et des valeurs 0. Au lieu de l'écrire directement if(a>b){returna;}elseretur

Détails du Samsung S25 Ultra exposés : même largeur que l'iPhone 16 Pro Max, mais avec un écran plus grand Détails du Samsung S25 Ultra exposés : même largeur que l'iPhone 16 Pro Max, mais avec un écran plus grand Aug 23, 2024 pm 09:33 PM

Selon les informations du 22 août, à l'approche de la sortie du téléphone mobile phare de nouvelle génération de Samsung, le S25 Ultra, de plus en plus de détails commencent à émerger. Le célèbre blogueur @ibinguniverse a révélé aujourd'hui plus de spécifications du S25 Ultra sur Weibo. La plus frappante est que sa largeur de corps est la même que celle de l'Apple iPhone 16 Pro Max, tous deux de 77,6 mm. 1. Grâce à l'optimisation supplémentaire de la conception du cadre par Samsung, la taille de l'écran du S25 Ultra a été augmentée à 6,86 pouces tout en conservant la même largeur que celle de l'iPhone 16 Pro Max, offrant aux utilisateurs une expérience visuelle plus immersive. Le blogueur a en outre souligné dans la zone de commentaires que les bords noirs du S25 Ultra sont meilleurs que ceux de l'iPhone 16 Pro Max&

Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone Jul 29, 2023 am 08:22 AM

Partie 1 : étapes de dépannage initiales Vérification de l'état du système Apple : avant d'aborder des solutions complexes, commençons par les bases. Le problème ne vient peut-être pas de votre appareil ; les serveurs Apple sont peut-être en panne. Visitez la page État du système d'Apple pour voir si l'AppStore fonctionne correctement. S'il y a un problème, tout ce que vous pouvez faire est d'attendre qu'Apple le résolve. Vérifiez votre connexion Internet : assurez-vous que vous disposez d'une connexion Internet stable, car le problème "Impossible de se connecter à l'AppStore" peut parfois être attribué à une mauvaise connexion. Essayez de basculer entre le Wi-Fi et les données mobiles ou de réinitialiser les paramètres réseau (Général > Réinitialiser > Réinitialiser les paramètres réseau > Paramètres). Mettez à jour votre version iOS :

See all articles