JavaScript의 문자열 연산
JavaScript의 문자열 작업
1. 개요
문자열은 사용자 입력 데이터를 처리할 때, DOM을 읽거나 설정할 때, 객체 속성을 조작할 때 거의 모든 곳에 있습니다. 쿠키, 그리고 물론 훨씬 더 많은 것들이 있습니다… JavaScript의 핵심 부분은 문자열 분할, 문자열 대소문자 변경, 하위 문자열 작업 등과 같은 일반적인 문자열 작업을 위한 속성 및 메서드 집합을 제공합니다.
대부분의 최신 브라우저는 정규 표현식의 강력한 이점을 활용할 수도 있습니다. 정규 표현식을 사용하면 수많은 문자열 조작 작업이 크게 단순화되지만 다소 가파른 학습 곡선을 극복해야 하기 때문입니다. 여기서는 주로 문자열 자체에 대한 몇 가지 작업을 소개합니다. 정규식은 향후 에세이에서 다루겠습니다.
2. 문자열 생성
문자열을 생성하는 방법에는 여러 가지가 있습니다. 가장 간단한 방법은 문자열 변수에 할당할 수 있는 문자 집합을 따옴표로 묶는 것입니다.
var myStr = "Hello, String!";
큰따옴표나 작은따옴표를 사용하여 문자열을 묶을 수 있지만 문자열을 구분하는 따옴표 쌍은 동일해야 하며 혼합할 수 없다는 점에 유의하세요.
var myString = "Fluffy is a Pretty cat.';과 같은 문은 불법입니다.
두 종류의 따옴표 사용을 허용하여 다음과 같은 특정 작업을 간단하게 만듭니다. 하나를 다른 문자열에 포함:
document.write("<img src='img/logo.jpg' height='30' width='100' alt='Logo'>");
위 스크립트에서 여러 문자열을 생성했지만 본질적으로 실제 문자열 개체는 아닙니다. 정확하게 말하면 문자열 객체를 생성하려면 다음 명령문을 사용할 수 있습니다. var strObj = new String("Hello, String!");
typeof 연산자를 사용하면 위의 myStr 유형은 문자열이고 strObj 유형은 객체입니다.
문자열의 길이를 알고 싶다면 해당 길이 속성인 string.length를 사용하세요. 🎜>
문자열의 지정된 위치에서 문자를 가져오는 방법: string.charAt(index); 3. 문자열 연결 문제: 두 개 이상의 문자열을 하나의 큰 문자열로 연결 해결책: 매우 간단합니다. "+"를 사용하여 두 문자열을 결합하기만 하면 됩니다. "추가":var longString = "One piece " + "plus one more piece.";
var result = ""; result += "My name is Anders" result += " and my age is 25";
var confirmString = "You did not enter a response to the last " + "question.\n\nSubmit form anyway?"; var confirmValue = confirm(confirmString);
"를 사용하여 바꾸세요.
var htmlString = "First line of string.<br>Second line of string."; document.write(htmlString);
string.concat(value1, value2, ...)
4. 문자열의 하위 문자열에 액세스
문제:
문자열 일부의 복사본을 얻습니다. 🎜>해결 방법:
하위 문자열()을 사용합니다. 또는 Slice() 메소드(NN4+, IE4+). 구체적인 사용법은 아래에 설명되어 있습니다.
substring()의 프로토타입은 string.substring(.from, to)
첫 번째 매개변수입니다. from은 원래 문자열의 하위 문자열 시작 위치를 지정합니다(0 기반 인덱스). 두 번째 매개 변수 to는 선택 사항이며 문자열이 원래 문자열의 끝에 있음을 지정합니다(0 기반 인덱스). from보다 커야 합니다. 생략되면 하위 문자열은 원래 문자열의 끝으로 이동합니다.
실수로 from 매개변수가 to 매개변수보다 커지면 어떻게 되나요? JavaScript는 하위 문자열의 시작 및 끝 위치를 자동으로 조정합니다. 즉, substring()은 항상 두 매개변수 중 더 작은 매개변수에서 시작하여 더 큰 매개변수로 끝납니다. 그러나 시작 위치의 문자는 포함되지만 끝 위치의 문자는 포함되지 않습니다.
Slice()의 프로토타입은 string.slice(start, end) 매개변수 start는 하위 문자열의 시작 위치를 나타냅니다. 는 음수입니다. 그러면 아래에서 처음까지의 숫자로 이해될 수 있습니다. 예를 들어 -3은 아래에서 세 번째부터 시작함을 의미합니다. 매개변수 end는 시작과 마찬가지로 끝 위치를 나타냅니다. 숫자이며 그 의미는 아래에서 끝까지의 숫자를 나타냅니다. Slice()의 매개변수는 음수일 수 있으므로 substring()보다 더 유연하지만 덜 허용됩니다. start가 end보다 크면 빈 문자열이 반환됩니다(예는 생략됨).var fullString = "Every dog has his day."; var section = fullString.substring(0, 4); // section is "Ever". section = fullString.substring(4, 0); // section is also "Ever". section = fullString.substring(1, 1); // section is an empty string. section = fullString.substring(-2, 4); // section is "Ever", same as fullString.substring(0, 4);
또 다른 메소드는 substr()이며, 프로토타입은 string.substr(start, length)
프로토타입에서 매개변수의 의미를 볼 수 있으며, start는 시작 위치를 나타냅니다. length는 하위 문자열의 길이를 나타냅니다. JavaScript 표준에서는 이 방법의 사용을 권장하지 않습니다.
5. 문자열 대소문자 변환
질문:
在你的页面上有文本框接收用户的输入信息,比如城市,然后你会根据他的城市的不同做不同的处理,这时自然会用到字符串比较,那么在比较前,最好进行大小写转换,这样只要考虑转换后的情形即可;或者要在页面上收集数据,然后将这些数据存储在数据库,而数据库恰好只接收大写字符;在这些情况下,我们都要考虑对字符串进行大小写转换。
解决方案:
使用toLowerCase()和toUpperCase()方法:
var city = "ShanGHai"; city = city.toLowerCase(); // city is "shanghai" now.
六、判断两个字符串是否相等
问题:
比如,你想拿用户的输入值与已知的字符串比较
解决方案:
先将用户的输入值全部转换为大写(或小写),然后再行比较:
var name = document.form1.txtUserName.value.toLowerCase(); if(name == "urname") { // statements go here. }
JavaScript有两种相等运算符。一种是完全向后兼容的,标准的"==",如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转换,考虑下面的赋值语句:
var strA = "i love you!"; var strB = new String("i love you!");
这两个变量含有相同的字符序列,但数据类型却不同,前者为string,后者为object,在使用"=="操作符时,JavaScript会尝试各种求值,以检测两者是否会在某种情况下相等。所以下面的表达式结果为true: strA == strB。
第二种操作符是"严格"的"===",它在求值时不会这么宽容,不会进行类型转换。所以表达式strA === strB的值为false,虽然两个变量持有的值相同。
有时代码的逻辑要求你判断两个值是否不相等,这里也有两个选择:"!="和严格的"!==",它们的关系就类似于"=="和"==="。
讨论:
"=="和"!="在求值时会尽可能地寻找值的匹配性,但你可能还是想在比较前进行显式的类型转换,以"帮助"它们完成工作。比如,如果想判断一个用户的输入值(字符串)是否等于一个数字,你可以让"=="帮你完成类型转换:
if(document.form1.txtAge.value == someNumericVar) { ... }
也可以提前转换:
if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }
如果你比较习惯于强类型的编程语言(比如C#,Java等),那么这里你可以延续你的习惯(类型转换),这样也会增强程序的可读性。
有一种情况需要注意,就是计算机的区域设置。如果用"<"和">"来比较字符串,那么JavaScript把它们作为Unicode来比较,但显然,人们在浏览网页时不会把文本当作Unicode来阅读:)比如在西班牙语中,按照传统的排序,"ch"将作为一个字符排在"c"和"d"之间。localeCompare()提供了一种方式,可以帮助你使用默认区域设置下的字符排序规则。
var strings; // 要排序的字符串数组,假设已经得到初始化
strings.sort(function(a,b) { return a.localeCompare(b) }); // 调用sort()方法进行排序
七、字符串的查找
问题:
判断一个字符串是否包含另一个字符串。
解决方案:
使用string的indexOf()方法:
strObj.indexOf(subString[, startIndex])
strObj为要进行判断的字符串,subString为要在strObj查找的子字符串,startIndex是可选的,表示查找的开始位置(基于0的索引),如果startIndex省略,则从strObj开始处查找,如果startIndex小于0,则从0开始,如果startIndex大于最大索引,则从最大索引处开始。
indexOf()返回strObj中subString的开始位置,如果没有找到,则返回-1。在脚本中,可以这么使用:
if(largeString.indexOf(shortString) != -1) { // 如果包含,进行相应处理; }
也许一个字符串会包含另一字符串不止一次,这时第二个参数startIndex也许会派上用场,下面这个函数演示如何求得一个字符串包含另外一个字符串的次数:
function countInstances(mainStr, subStr) { var count = 0; var offset = 0; do { offset = mainStr.indexOf(subStr, offset); if(offset != -1) { count++; offset += subStr.length; } }while(offset != -1) return count; }
String对象有一个与indexOf()对应的方法,lastIndexOf():
strObj.lastIndexOf(substring[, startindex])
strObj为要进行判断的字符串,subString为要在strObj查找的子字符串,startIndex是可选的,表示查找的开始位置(基于0的索引),如果startIndex省略,则从strObj末尾处查找,如果startIndex小于0,则从0开始,如果startIndex大于最大索引,则从最大索引处开始。该方法自右向左查找,返回subString在strObj中最后出现的位置,如果没有找到,返回-1。
八、在Unicode值和字符串中的字符间转换
问题:
获得一个字符的Unicode编码值,反之亦然。
解决方案:
要获得字符的Unicode编码,可以使用string.charCodeAt(index)方法,其定义为:
strObj.charCodeAt(index)
index为指定字符在strObj对象中的位置(基于0的索引),返回值为0与65535之间的16位整数。例如:
var strObj = "ABCDEFG"; var code = strObj.charCodeAt(2); // Unicode value of character 'C' is 67
如果index指定的索引处没有字符,则返回值为NaN。
要将Unicode编码转换为一个字符,使用String.fromCharCode()方法,注意它是String对象的一个"静态方法",也就是说在使用前不需要创建字符串实例:
String.fromCharCode(c1, c2, ...)
它接受0个或多个整数,返回一个字符串,该字符串包含了各参数指定的字符,例如:
var str = String.fromCharCode(72, 101, 108, 108, 111); // str == "Hello"
讨论:
Unicode包含了这个世界上很多书写语言的字符集,但别因为Unicode包含一个字符就期望这个字符能够在警告对话框、文本框或页面呈现时正常显示。如果字符集不可用,在页面将显示为问号或其它符号。一台典型的北美的计算机将不能在屏幕上显示中文字符,除非中文的字符集及其字体已经安装。
以上就是JavaScript中的字符串操作的内容,更多相关内容请关注PHP中文网(www.php.cn)!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

사용법: JavaScript에서 insertBefore() 메서드는 DOM 트리에 새 노드를 삽입하는 데 사용됩니다. 이 방법에는 삽입할 새 노드와 참조 노드(즉, 새 노드가 삽입될 노드)라는 두 가지 매개 변수가 필요합니다.

Go 언어는 매우 인기 있는 프로그래밍 언어이며 강력한 기능으로 인해 많은 개발자가 선호합니다. 문자열 작업은 프로그래밍에서 가장 일반적인 작업 중 하나이며 Go 언어에서는 문자열 삭제 작업도 매우 일반적입니다. 이 기사에서는 Go 언어의 문자열 삭제 작업을 자세히 살펴보고 특정 코드 예제를 사용하여 이 지식 포인트를 더 잘 이해하고 숙달하는 데 도움을 줄 것입니다. 문자열 삭제 작업 Go 언어에서는 일반적으로 삭제 작업을 포함한 문자열 작업을 수행하기 위해 strings 패키지를 사용합니다.
