整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript-字符串

JavaScript-字符串

avaScript的字符串就是用''或""括起来的字符表示。

如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。

如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如:

'I\'m \"OK\"!';

表示的字符串内容是:I'm "OK"!

转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\。

ASCII字符可以以\x##形式的十六进制表示,例如:

'\x41'; // 完全等同于 'A'

还可以用\u####表示一个Unicode字符:

'\u4e2d\u6587'; // 完全等同于 '中文'

多行字符串

由于多行字符串用\n写起来比较费事,所以最新的ES6标准新增了一种多行字符串的表示方法,用反引号 * ... * 表示:

`这是一个
多行
字符串`;

注意:反引号在键盘的ESC下方,数字键1的左边:

模板字符串

要把多个字符串连接起来,可以用+号连接:

var name='小明';
var age=20;
var message='你好, ' + name + ', 你今年' + age + '岁了!';
alert(message);

如果有很多变量需要连接,用+号就比较麻烦。ES6新增了一种模板字符串,表示方法和上面的多行字符串一样,但是它会自动替换字符串中的变量:

var name='小明';
var age=20;
var message=`你好, ${name}, 你今年${age}岁了!`;
alert(message);
'use strict';
// 如果浏览器支持模板字符串,将会替换字符串内部的变量:
var name='小明';
var age=20;

操作字符串

字符串常见的操作如下:

var s='Hello, world!';
s.length; // 13

要获取字符串某个指定位置的字符,使用类似Array的下标操作,索引号从0开始:

var s='Hello, world!';
s[0]; // 'H'
s[6]; // ' '
s[7]; // 'w'
s[12]; // '!'
s[13]; // undefined 超出范围的索引不会报错,但一律返回undefined

需要特别注意的是,字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果:

var s='Test';
s[0]='X';
alert(s); // s仍然为'Test'

JavaScript为字符串提供了一些常用方法,注意,调用这些方法本身不会改变原有字符串的内容,而是返回一个新字符串:

toUpperCase

toUpperCase()把一个字符串全部变为大写:

var s='Hello';
s.toUpperCase(); // 返回'HELLO'

toLowerCase

toLowerCase()把一个字符串全部变为小写:

var s='Hello';
var lower=s.toLowerCase(); // 返回'hello'并赋值给变量lower
lower; // 'hello'

indexOf

indexOf()会搜索指定字符串出现的位置:

var s='hello, world';
s.indexOf('world'); // 返回7
s.indexOf('World'); // 没有找到指定的子串,返回-1

substring

substring()返回指定索引区间的子串:


当前互联网信息爆炸的时代,高效准确地抓取和处理网页内容成为众多领域必备技能。网络爬虫技术搭配强大的HTML解析库HtmlAgilityPack,能够自动化抽取并结构化分析网页数据。本篇我将带领您深入了解如何使用C#编程语言结合HtmlAgilityPack,从HTML文档中快速且准确地获取文章标题。

假设我们通过网络爬虫程序成功获取了一个网页的HTML源代码:

string htmlContent="<html><head><title>这是文章标题</title></head><body>介绍了主题和内容...</body></html>";

为了从这段HTML文本中定位并提取出文章标题,我们可以编写如下的C#方法:

// 定义一个静态方法用于从HTML字符串中提取文章标题

public static string ExtractTitle(string htmlContent)

{

// 创建一个HtmlDocument对象以解析加载的HTML内容

var htmlDocument=new HtmlDocument();

htmlDocument.LoadHtml(htmlContent);

// 使用XPath表达式精确匹配<head>标签内的<title>标签节点

var titleNode=htmlDocument.DocumentNode.SelectSingleNode("//head/title");

// 如果找到了<title>节点,则返回其内部文本内容,并进行trim操作去除多余空白;否则返回提示信息

return titleNode !=null ? titleNode.InnerText.Trim() : "未找到页面标题";

}

接下来,在主程序入口处调用此方法并显示提取结果:

static void Main(string[] args)

{

// 假设此处的htmlContent是从网络爬虫抓取的实际HTML数据

string pageTitle=ExtractTitle(htmlContent);


// 输出提取得到的文章标题

Console.WriteLine($"文章标题: {pageTitle}");

Console.WriteLine(new string('\n', 100)); // 输出多行空白以便区分输出内容

}


可以看到这个代码展示了C#与HtmlAgilityPack在HTML内容解析方面的强大能力,不仅能准确无误地从HTML文档中摘取文章标题,而且具备极高的灵活性和扩展性。通过调整或增强XPath表达式,您可以轻松定位并抽取其他多种关键元素,比如正文、作者信息、发布日期等。面对日益复杂的数据抓取需求,这一技术手段将成为您的得力助手,助您从浩瀚的网页信息海洋中筛选出有价值的精华内容。不断实践和优化此类解决方案,我们将在大数据时代更好地驾驭和利用网络信息资源,实现更深层次的信息挖掘与应用。


朋友们,如果你们觉得这个案例有用,那就尽情地使用它吧!别忘了关注我,我是代码领域的诗人XY,一个乐于分享的人。我热爱与大家分享我的知识和经验,帮助你们解决问题,激发你们的思考。我深信,只有通过分享和交流,我们才能不断进步,不断创新。若你对更多相关话题感兴趣,或者在学习工作中遇到难题,请随时留言给我,我会为你撰写更多相关内容,并尽我所能帮助你解决难题。

们知道字符串(String)类型是 JavaScript 中的基本数据类型之一,也是最常用的数据类型啦。下面我们来学习一下关于字符串的属性方法以及其的使用等。

什么是字符串

JavaScript 字符串其实很好理解,就是被包围在单引号或双引号中的任意字符。字符串可以用于存储和处理文本。

示例:

例如像下面这样声明的变量都是字符串类型:

var str1="123";

var str2='12356';

var str3="你好,侠课岛";

var str4='hello summer';

var str5='good_boy';

一般情况下字符串就是一个或多个字符组成,除此之外,我们还可以使用 new 关键字将字符串定义为一个对象:

var name=new String("summer");

console.log(name);  // 输出:summer

不过一般情况下我们最好不要创建 String 对象,因为这可能会导致执行速度变慢。

通过索引访问字符串

在 JavaScript 语言中我们可以通过索引来访问字符串中的每个字符,字符串的索引也是从 0 开始,第一个字符索引值为 [0],第二个字符索引值为[1],以此类推。

示例:

例如下述代码中,我们定义了一个字符串类型的变量 username,然后输出变量中索引值为1的字符:

var username="summer";

console.log(username[1]);  // 输出: u

因为索引是从 0 开始计数,那么索引为1,那应该就是字符串中的第二个字符串,也就是 u。

获取字符串的长度

我们先来看下面这个字符串:

var hobby="basketball";

你能知道这个字符串的长度为多少吗,其实你数一下就能知道,这个字符串的长度就是10。因为这个字符串有10个字符,所以它的长度为10。

这里要注意的是,字符串里面包含的空格也是会计入长度的,有1个空格长度加1,2个空格长度加2。

在 JavaScript 语言中,我们可以使用 length 属性来获取字符串长度,length 属性用于返回字符串的长度(字符数)。

示例:

例如获取下面这个变量 hobby 的长度并输出:

var hobby="basketball";

console.log(hobby.length);  // 输出:10

实际使用时,可能会遇到带有空格的字符串,那么空格会计入字符的长度吗,我们来看看:

var str1="hello xkd";
console.log(str1.length);  // 输出:9

通过输出结果我们可以知道,空格也会计入字符串的长度的。

从字符串的长度和索引的关系,我们可以得出一个结论,索引是从0开始,到length-1 结束的。

转义字符

有些时候,字符串可能无法被解析,例如下面这个字符串:

var str1="嘿,你好呀~,"侠课岛"";
console.log(str1);  // Uncaught SyntaxError: Unexpected identifier

那这个时候要怎么办呢,我们可以使用反斜杆 \ 来转义字符串中的双引号。

示例:

var str1="嘿,你好呀~,\"侠课岛\"";

console.log(str1);   //输出:嘿,你好呀~,"侠课岛"

转义字符\可以用于转义撇号,换行,引号,等其他特殊字符。下面是一些可以用于转义字符转义的特殊字符:

  • \':单引号。
  • \":双引号。
  • \:反斜杠。
  • \n:换行符。
  • \r:回车符。
  • \t:制表符(tab)。
  • \b:退格符。
  • \f:换页符。

字符串的方法

字符串的方法有很多,下面我们简单来看一些比较常用到的几个方法:

  • toLowerCase():此方法用于把字符串转为小写,并返回新的字符串。
var str1="Hello XKD";
console.log(str1.toLocaleLowerCase());  

//输出: hello xkd
  • toUpperCase():此方法用于把字符串转为大写,并返回新的字符串。
var str1="Hello XKD";
console.log(str1.toUpperCase());  

//输出: HELLO XKD
  • toString():用于返回一个表示 String 对象的值。
var str1="Hello";
console.log(str1.toString());  

//输出: Hello
  • concat(): 用于连接两个或多个字符串。
var str1="Hello";
var str2="xkd";
console.log(str1.concat(str2));  

//输出: Helloxkd
  • indexOf():返回某个指定的子字符串在字符串中第一次出现的位置。
var str1="Hello xkd, Congratulations on login!";
console.log(str1.indexOf('xkd'));  

//输出: 6
  • lastIndexOf():返回某个指定的子字符串在字符串中最后出现的位置。
var str1="Hello xkd, Congratulations on login!";
console.log(str1.lastIndexOf('o'));   

//输出: 31
  • slice(): 返回字符串中提取的子字符串。
var str1="Hello xkd, Congratulations on login!";
console.log(str1.slice(6, 8)); 

//输出: xk
  • split():把字符串分割成字符串数组。
var str1="Hello xkd, Congratulations on login!";
console.log(str1.split(" "));  

//输出: ["Hello", "xkd,", "Congratulations", "on", "login!"]
  • substring():提取字符串中介于两个指定下标之间的字符。
var str1="Hello xkd, Congratulations on login!";
console.log(str1.substring(11, 17));  

//输出: Congra
  • replace():在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
var str1="Hello xkd, Congratulations on login!";
console.log(str1.replace("xkd", "summer"));  

//输出: Hello summer, Congratulations on login!
  • match():返回所有查找的关键字内容的数组。