Whatever message this page gives is out now! Go check it out!
Left(string, count)Parameter | Description |
string | A string or a variable that contains a string. |
count | A positive integer or a variable that contains one. Maximum number of characters to return. |
<cfscript>
myString=Left("That's one small step for man, one giant leap for mankind.",25);
WriteOutput(myString);
</cfscript><cfscript>
// Simple Content Preview Generation with Left
// Business: Create article previews for different display contexts
// Sample articles with varying content lengths
articles = [
{
title: "Revolutionary AI Technology Transforms Healthcare Industry with Groundbreaking Innovations",
content: "In a landmark development that promises to reshape modern healthcare, researchers have successfully implemented AI systems that can diagnose complex conditions with unprecedented accuracy. The new technology combines machine learning algorithms with advanced medical imaging, demonstrating remarkable success in early trials.",
author: "Dr. Sarah Johnson"
},
{
title: "Local Restaurant Chain Expands Operations",
content: "Springfield's beloved pizza restaurant 'Tony's Kitchen' announced plans to open three new locations across the metropolitan area this summer.",
author: "Mike Chen"
}
];
// Simple preview generation function
function createPreview(article, context) {
var preview = "";
switch(context) {
case "homepage":
preview = "Homepage Card:<br>";
preview &= "<strong>Title:</strong> " & Left(article.title, 40) & "...<br>";
preview &= "<strong>Content:</strong> " & Left(article.content, 100) & "...<br>";
break;
case "mobile":
preview = "Mobile View:<br>";
preview &= "<strong>Title:</strong> " & Left(article.title, 30) & "...<br>";
preview &= "<strong>Content:</strong> " & Left(article.content, 80) & "...<br>";
break;
case "email":
preview = "Email Newsletter:<br>";
preview &= "<strong>Title:</strong> " & Left(article.title, 50) & "...<br>";
preview &= "<strong>Content:</strong> " & Left(article.content, 150) & "...<br>";
break;
}
preview &= "<strong>Author:</strong> " & article.author;
return preview;
}
</cfscript>
<cfoutput>
<h1>📝 Left Function: Content Preview Demo</h1>
<p><strong>Business Need:</strong> Create consistent article previews for different platforms</p>
<p><strong>Challenge:</strong> Articles vary greatly in title and content length</p>
<p><strong>Solution:</strong> Use Left() to extract specific character counts for each context</p>
<hr>
</cfoutput>
<cfloop array="#articles#" index="i" item="article">
<cfoutput>
<h2>Article #i#: Original Content</h2>
<div style="background: ##f8f9fa; padding: 15px; border: 1px solid ##ddd;">
<p><strong>Title:</strong> #article.title# <em>(#len(article.title)# characters)</em></p>
<p><strong>Content:</strong> #article.content# <em>(#len(article.content)# characters)</em></p>
<p><strong>Author:</strong> #article.author#</p>
</div>
<h3>Preview Examples</h3>
<div style="display: flex; gap: 15px; margin: 20px 0;">
<div style="background: ##e3f2fd; padding: 15px; border-radius: 5px; width: 300px;">
#createPreview(article, "homepage")#
</div>
<div style="background: ##f3e5f5; padding: 15px; border-radius: 5px; width: 250px;">
#createPreview(article, "mobile")#
</div>
<div style="background: ##e8f5e8; padding: 15px; border-radius: 5px; width: 350px;">
#createPreview(article, "email")#
</div>
</div>
<hr>
</cfoutput>
</cfloop>
<cfoutput>
<h2>✅ Key Benefits</h2>
<ul>
<li><strong>Consistent Layout:</strong> All previews fit their designated spaces</li>
<li><strong>Responsive Design:</strong> Different lengths for different screen sizes</li>
<li><strong>Fast Loading:</strong> Only necessary text is processed and displayed</li>
<li><strong>Professional Appearance:</strong> Clean, uniform preview cards</li>
</ul>
<div style="background: ##fff3cd; padding: 15px; border-radius: 5px; margin-top: 20px;">
<h3>💡 The Left Pattern for Content</h3>
<code>
// Extract first 40 characters for homepage<br>
title = Left(originalTitle, 40) & "...";<br><br>
// Different lengths for different contexts<br>
mobileTitle = Left(originalTitle, 30);<br>
emailTitle = Left(originalTitle, 50);
</code>
</div>
</cfoutput><cfscript>
// Simple SKU Processing with Left
// Business: Extract department codes from product SKUs
// Sample products with structured SKUs
products = [
{sku: "ELEC-TV-SAMSUNG-55IN-001", name: "Samsung 55-inch TV", price: 799.99},
{sku: "HOME-FURN-SOFA-LEATHER", name: "Leather Sofa", price: 1299.99},
{sku: "APRL-SHIRT-MENS-BLUE-L", name: "Men's Blue Shirt", price: 29.99},
{sku: "BOOK-FICTION-MYSTERY", name: "Mystery Novel", price: 24.95}
];
// Department lookup
departments = {
"ELEC": {name: "Electronics", manager: "Sarah Johnson", color: "##4caf50"},
"HOME": {name: "Home & Garden", manager: "Mike Rodriguez", color: "##ff9800"},
"APRL": {name: "Apparel", manager: "Lisa Chen", color: "##9c27b0"},
"BOOK": {name: "Books & Media", manager: "David Wilson", color: "##2196f3"}
};
// Simple SKU processing function
function processSKU(product) {
// Extract department code using Left()
var deptCode = Left(product.sku, 4);
var result = "SKU: " & product.sku & "<br>";
result &= "Department Code: <strong>" & deptCode & "</strong><br>";
if (structKeyExists(departments, deptCode)) {
var dept = departments[deptCode];
result &= "Department: " & dept.name & "<br>";
result &= "Manager: " & dept.manager & "<br>";
result &= "Status: ✅ Routed Successfully";
} else {
result &= "Status: ❌ Unknown Department";
}
return result;
}
</cfscript>
<cfoutput>
<h1>🏢 Left Function: SKU Processing Demo</h1>
<p><strong>Business Need:</strong> Route products to correct departments based on SKU codes</p>
<p><strong>Challenge:</strong> Extract department codes from complex product SKUs</p>
<p><strong>Solution:</strong> Use Left() to get the first 4 characters (department code)</p>
<hr>
</cfoutput>
<cfloop array="#products#" index="product">
<cfscript>
deptCode = Left(product.sku, 4);
dept = structKeyExists(departments, deptCode) ? departments[deptCode] : {color: "##757575"};
</cfscript>
<cfoutput>
<h3>#product.name# - $#numberFormat(product.price, "0.00")#</h3>
<div style="background: ##f5f5f5; padding: 15px; margin: 10px 0; border-left: 5px solid #dept.color#;">
#processSKU(product)#
</div>
</cfoutput>
</cfloop>
<cfoutput>
<h2>Department Summary</h2>
<div style="display: flex; gap: 15px; margin: 20px 0;">
</cfoutput>
<cfloop collection="#departments#" item="code">
<cfscript>
dept = departments[code];
// Count products for this department
productCount = 0;
for (product in products) {
if (Left(product.sku, 4) == code) {
productCount++;
}
}
</cfscript>
<cfoutput>
<div style="background: #dept.color#; color: white; padding: 15px; border-radius: 5px; text-align: center;">
<h4 style="color: white; margin-top: 0;">#code#</h4>
<p style="color: white;">#dept.name#</p>
<p style="color: white;">Products: #productCount#</p>
<p style="color: white; margin-bottom: 0;">Manager: #dept.manager#</p>
</div>
</cfoutput>
</cfloop><cfscript>
// Simple UI Display Optimization with Left
// Business: Format client data for consistent display
// Sample client data with varying field lengths
clients = [
{
"company": "Global Technology Solutions International Corporation LLC",
"contact": "Dr. Elizabeth Alexandra Montgomery-Richardson III",
"address": "1234 International Business Park Drive, Suite 567",
"phone": "+1-555-123-4567 ext. 8901"
},
{
"company": "Smith & Associates",
"contact": "John Smith",
"address": "123 Main St, Anytown, ST",
"phone": "555-987-6543"
},
{
"company": "Advanced Research Laboratory for Technologies",
"contact": "Prof. Dr. Maria Rodriguez-Fernandez",
"address": "9876 University Campus Boulevard, Building 15",
"phone": "+1-555-RESEARCH (737-3272)"
}
];
// Simple formatting function for different contexts
function formatForDisplay(clientData, displayType) {
var formatted = {};
switch(displayType) {
case "table":
formatted.company = Left(clientData["company"], 25) & "...";
formatted.contact = Left(clientData["contact"], 20) & "...";
formatted.address = Left(clientData["address"], 30) & "...";
formatted.phone = Left(clientData["phone"], 15) & "...";
formatted.context = "Data Table";
formatted.width = "600px";
break;
case "card":
formatted.company = Left(clientData["company"], 30) & "...";
formatted.contact = Left(clientData["contact"], 25) & "...";
formatted.address = Left(clientData["address"], 35) & "...";
formatted.phone = clientData["phone"]; // Keep full phone
formatted.context = "Dashboard Card";
formatted.width = "350px";
break;
case "mobile":
formatted.company = Left(clientData["company"], 20) & "...";
formatted.contact = Left(clientData["contact"], 18) & "...";
formatted.address = Left(clientData["address"], 25) & "...";
formatted.phone = Left(clientData["phone"], 12) & "...";
formatted.context = "Mobile View";
formatted.width = "280px";
break;
}
return formatted;
}
</cfscript>
<cfoutput>
<h1>📱 Left Function: UI Display Demo</h1>
<p><strong>Business Need:</strong> Display client data consistently across different interfaces</p>
<p><strong>Challenge:</strong> Client information varies dramatically in length</p>
<p><strong>Solution:</strong> Use Left() to create uniform field lengths for clean layouts</p>
<hr>
</cfoutput>
<cfloop array="#clients#" index="i" item="clientData">
<cfoutput>
<h2>Client #i#: Original Data</h2>
<div style="background: ##fff3cd; padding: 15px; border: 1px solid ##ffc107;">
<p><strong>Company:</strong> #clientData["company"]# <em>(#len(clientData["company"])# chars)</em></p>
<p><strong>Contact:</strong> #clientData["contact"]# <em>(#len(clientData["contact"])# chars)</em></p>
<p><strong>Address:</strong> #clientData["address"]# <em>(#len(clientData["address"])# chars)</em></p>
<p><strong>Phone:</strong> #clientData["phone"]# <em>(#len(clientData["phone"])# chars)</em></p>
</div>
<h3>Formatted Display Examples</h3>
<div style="display: flex; gap: 15px; margin: 20px 0; flex-wrap: wrap;">
</cfoutput>
<cfscript>
displayTypes = ["table", "card", "mobile"];
</cfscript>
<cfloop array="#displayTypes#" index="displayType">
<cfscript>
formatted = formatForDisplay(clientData, displayType);
</cfscript>
<cfoutput>
<div style="background: ##f0f8ff; padding: 15px; border-radius: 5px; width: #formatted.width#; border: 1px solid ##87ceeb;">
<h4 style="margin-top: 0; color: ##0066cc;">#formatted.context#</h4>
<p><strong>Company:</strong> #formatted.company#</p>
<p><strong>Contact:</strong> #formatted.contact#</p>
<p><strong>Address:</strong> #formatted.address#</p>
<p><strong>Phone:</strong> #formatted.phone#</p>
</div>
</cfoutput>
</cfloop>
<cfoutput>
</div>
<hr>
</cfoutput>
</cfloop><cfscript>
// Simple File Management with Left
// Business: Route transaction files based on filename prefixes
// Sample transaction files
transactionFiles = [
{"filename": "CC_VISA_20240115_BATCH001.txt", "size": "2.3 MB", "records": 1547},
{"filename": "ACH_NACHA_20240115_RETURNS.csv", "size": "856 KB", "records": 892},
{"filename": "WIRE_SWIFT_20240115_INCOMING.xml", "size": "1.1 MB", "records": 234},
{"filename": "MRCH_DAILY_20240115_SUMMARY.pdf", "size": "3.7 MB", "records": 5623}
];
// Processing systems lookup
processors = {
"CC": {"name": "Credit Card Processor", "system": "CardPro", "color": "##4caf50"},
"ACH": {"name": "ACH Transfer System", "system": "BankGateway", "color": "##2196f3"},
"WIRE": {"name": "Wire Transfer System", "system": "SwiftNet", "color": "##f44336"},
"MRCH": {"name": "Merchant Reports", "system": "ReportEngine", "color": "##ff9800"}
};
// Simple file processing function
function processFile(fileData) {
// Extract file type prefix using Left()
var fileType = Left(fileData["filename"], find("_", fileData["filename"]) - 1);
var result = "Filename: " & fileData["filename"] & "<br>";
result &= "File Type: <strong>" & fileType & "</strong><br>";
result &= "Size: " & fileData["size"] & " | Records: " & numberFormat(fileData["records"], "0,0") & "<br>";
if (structKeyExists(processors, fileType)) {
var processor = processors[fileType];
result &= "Processor: " & processor["name"] & "<br>";
result &= "System: " & processor["system"] & "<br>";
result &= "Status: ✅ Routed Successfully";
} else {
result &= "Status: ❌ Unknown File Type - Manual Review Required";
}
return result;
}
</cfscript>
<cfoutput>
<h1>📊 Left Function: File Management Demo</h1>
<p><strong>Business Need:</strong> Automatically route transaction files to correct processing systems</p>
<p><strong>Challenge:</strong> Different file types need different processing systems</p>
<p><strong>Solution:</strong> Use Left() to extract file type codes from filenames</p>
<hr>
</cfoutput>
<cfloop array="#transactionFiles#" index="fileData">
<cfscript>
fileType = Left(fileData["filename"], find("_", fileData["filename"]) - 1);
processor = structKeyExists(processors, fileType) ? processors[fileType] : {"color": "##757575"};
</cfscript>
<cfoutput>
<h3>Transaction File: #fileData["filename"]#</h3>
<div style="background: ##f9f9f9; padding: 15px; margin: 10px 0; border-left: 5px solid #processor["color"]#;">
#processFile(fileData)#
</div>
</cfoutput>
</cfloop>
<cfoutput>
<h2>Processing Systems Summary</h2>
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin: 20px 0;">
</cfoutput>
<cfloop collection="#processors#" item="code">
<cfscript>
processor = processors[code];
// Count files for this processor
fileCount = 0;
totalRecords = 0;
for (fileData in transactionFiles) {
fileTypeCode = Left(fileData["filename"], find("_", fileData["filename"]) - 1);
if (fileTypeCode == code) {
fileCount++;
totalRecords += fileData["records"];
}
}
</cfscript>
<cfoutput>
<div style="background: #processor["color"]#; color: white; padding: 15px; border-radius: 5px; text-align: center;">
<h4 style="color: white; margin-top: 0;">#code#</h4>
<p style="color: white;">#processor["name"]#</p>
<p style="color: white;">Files: #fileCount#</p>
<p style="color: white;">Records: #numberFormat(totalRecords, "0,0")#</p>
<p style="color: white; margin-bottom: 0;">#processor["system"]#</p>
</div>
</cfoutput>
</cfloop>