[Typescript]基础篇之 String 对象

2023-11-07

String 对象简介

String 对象是用于处理文本(字符串)

与 string 区别

string 是基础数据类型;
String 是对象;

String

定义

let txt = new String(value);
//简单方式
let txt = "string";

属性

属性 说明
length 返回字符串的长度
prototype 允许向对象添加属性和方法
constructor 创建该对象的函数的引用

方法

方法 说明
charAt 返回在指定位置的字符
charCodeAt 返回指定位置字符的 Unicode 编码
concat 连接两个或更多字符串,并返回新的字符串
indexOf 返回指定字符串值在字符串中首次出现位置
lastIndexOf 搜索方向从后向前搜索最后出现字符串位置值,返回位置数值从前向后数
localeCompare 用本地特定的顺序来比较两个字符串
match 查找找到一个或多个正则表达式的匹配
replace 替换与正则表达式匹配的子串
search 检索与正则表达式相匹配的值
slice 提取字符串的片断,并在新的字符串中返回被提取的部分
split 把字符串分割为子字符串数组
substr 返回从起始索引号开始指定长度的字符
substring 提取字符串中指定索引号之间的字符
toLocaleLowerCase 根据主机语言环境转换为小写
toLocaleUpperCase 根据主机语言环境转换为大写
toLowerCase 把字符串转换为小写
toString 返回字符串
toUpperCase 把字符串转换为大写
valueOf 返回指定字符串对象的原始值

属性的使用

  1. constructor
let str = new String( "This is string" );
console.log("str.constructor is",str.constructor)
//str.constructor is:function String() { [native code] }
console.log(str.constructor)
//ƒ String() { [native code] }
  1. prototype
function employee(id:number,name:string) {
    this.id = id
    this.name = name
}

let emp = new employee(123,"admin")
employee.prototype.email = "admin@runoob.com"

console.log("员工邮箱: "+emp.email)

方法的使用

lastIndexOf

搜索方向从后向前,搜索字符串最后的位置值,返回位置值从前向后数

let str1 = new String( "This is string one and again string" );
let index = str1.lastIndexOf( "string" );
console.log("lastIndexOf 查找到的最后字符串位置 :" + index ); // 29

index = str1.lastIndexOf( "one" );
console.log("lastIndexOf 查找到的最后字符串位置 :" + index ); // 15

localeCompare

用本地特定的顺序来比较两个字符串

let str1 = new String( "This is beautiful string" );

let index = str1.localeCompare( "This is beautiful string");
// 0
console.log("localeCompare first :" + index );

replace

替换与正则表达式匹配的子串

let re = /(\w+)\s(\w+)/;
let str = "zara ali";
let newstr = str.replace(re, "$2, $1");
console.log(newstr); // ali, zara

search

检索与正则表达式相匹配的值,未找到返回-1

let re1 = /apples/gi;
let re2 = /apples/g;
let re3 = /apples/;
let str = "Apples are round, apples are red, and apples are juicy.";
if (str.search(re) == -1 ) {
   console.log("Does not contain Apples" );
} else {
   console.log("Contains Apples", re1);//4
   console.log("Contains Apples", re2);//22
   console.log("Contains Apples", re3);//22
}
  • /gi 搜索第一次检索到正则的位置值,不区分大小写
  • /g 搜索第一次检索到正则的位置值,区分大小写
  • / 搜索第一次检索到正则的位置值,区分大小写

slice

提取字符串的片断,并在新的字符串中返回被提取的部分

let re = 'apples';
let str = "Apples are round, apples are red, and apples are juicy.";
let newad=str.slice(re)
str="new word"
console.log("log1:" ,str)//"log1:new word"
console.log("log2:" ,newad)//"log2:Apples are round, apples are red, and apples are juicy."

返回的是新地址的字符串,因此修改该值不会影响原有字符串值

split

把字符串分割为子字符串数组。

string.split(splitChar, length)
  • splitChar 用于分割的字符串
  • string 被分割字符串
  • length 分割字符串后返回的字符串数组的长度
let str = "Apples are round, and apples are juicy.";
let splitted = str.split(" ", 3);
console.log(splitted)  // [ 'Apples', 'are', 'round,' ]

substring

截取字符串中指定的两个索引号之间的字符

string.substring(start, end?)
  • start 截取字符串开始位置索引,若是没有 end,默认为截取到最后一个字符串
  • end 截取字符串结束位置索引
let str = "RUNOOB GOOGLE TAOBAO FACEBOOK";
console.log("(1,2): "    + str.substring(1,2));   // U
console.log("(0,10): "   + str.substring(0, 10)); // RUNOOB GOO
console.log("(5): "      + str.substring(5));     // B GOOGLE TAOBAO FACEBOOK

toLocaleLowerCase

根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射。

let str = "Runoob Google";
console.log(str.toLocaleLowerCase( ));  // runoob google

toLocaleUpperCase()

据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射。

let str = "Runoob Google";
console.log(str.toLocaleUpperCase( ));  // RUNOOB GOOGLE

valueOf()

返回指定字符串对象的原始值。

let str = new String("Runoob");
console.log(str.valueOf( ));  // Runoob
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Typescript]基础篇之 String 对象 的相关文章

  • Chart.js 在初始化时设置活动段

    我正在使用 Chart js v2 并且尝试在加载图表时模拟圆环图上某个段的 悬停状态 因此看起来有一个部分已突出显示 我已经搜索和梳理了代码一天 但找不到一个好的方法来做到这一点 提前致谢 设置片段的悬停样式有点令人困惑 因为它没有真正记
  • JavaScript 中的埃拉托斯特尼筛法对大量数据无限运行

    我一直在尝试写埃拉托斯特尼筛法 http en wikipedia org wiki Sieve of EratosthenesJavaScript 中的算法 基本上我只是按照以下步骤操作 创建从 2 到 n 1 的连续整数列表 令第一个素
  • Eslint errorring 导入没有扩展名的 jsx

    我正在尝试在 es6 中导入 jsx 文件而不需要 jsx 扩展名 import LoginErrorDialog from LoginErrorDialogView Not import LoginErrorDialog from Log
  • 在新的 Google 协作平台 <嵌入 HTML> 中使用 localStorage 和 IndexedDB 不起作用

    我正在尝试将新的 Google 协作平台用于我开发的网页 但是 我在存储本地数据时遇到了问题 本地文件在 Windows 和 Apple safari chrome 中运行良好 从 Google 协作平台尝试一下 没有什么乐趣 此外 在 s
  • 使用 JavaScript 禁用第三方 cookie

    我正在努力根据所有在欧盟运营的公司的数据保护规则实施新的 Cookie 政策合规性 根据该规则 用户在使用任何网站时必须能够拒绝 接受除必需的 Cookie 之外的所有内容 在我客户的网站中 我可以看到正在存储以下第三方 cookie ga
  • 摩卡 - Chai Karma“套件未定义”

    我对 jscript tdd 很陌生 遇到了问题 希望有人能告诉我我在做什么 在浏览器中运行测试 通过 HTML 文件 一切正常 通过节点和业力运行它们我得到以下异常 我想在 node js 主机的 karma 中使用 Mocha 和 Ch
  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • 有没有办法使用 Rspec/Capybara/Selenium 将 javascript console.errors 打印到终端?

    当我运行 rspec 时 是否可以让 capybara selenium 向 rspec 报告任何 javascript console errors 和其他异常 我有一大堆测试失败 但当我手动测试它时 我的应用程序正在运行 如果不知道仅在
  • 如何纠正流警告:解构(缺少注释)

    我正在编写一个小型 React Native 应用程序 并且正在尝试使用 Flow 但我无法在任何地方真正获得有关它的正确教程 我不断收到错误 destructuring Missing annotation 有关 station 这段代码
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • 如何解决 Typescript 构建中的错误“找不到模块 'jquery'”

    我目前在 ts 文件的顶部有这个import require jquery 我这样做是因为我试图在我的打字稿文件中使用 jquery 但我似乎无法编译它 因为它返回标题中所述的错误 我正在使用 ASP NET CORE 脚本文件夹 tsco
  • Javascript split 不是一个函数

    嘿朋友们 我正在使用 javascript sdk 通过 jQuery facebook 多朋友选择器在用户朋友墙上发布信息 但是我收到此错误friendId split 不是函数 这是我的代码 function recommendToFr
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • 如何确定所有角度2分量都已渲染?

    当所有 Angular2 组件完成渲染时 是否会触发一个角度事件 For jQuery 我们可以用 function 然而 对于 Angular2 当domready事件被触发 html 只包含角度组件标签 每个组件完成渲染后 domrea
  • 如何在react-highcharts中使用图表工具提示格式化程序?

    如何使用图表工具提示格式化程序 我正在使用高图表的反应包装器 我有这样的配置 const CHART CONFIG tooltip formatter tooltip gt var s b this x b each this points

随机推荐