In [7]:
var str1 = "Текст, сохаренный в переменной";
var str2 = 'Текст заключенный в одинарные кавычки';
console.log(str1,'\n',str2)
Out[7]:
new String
In [18]:
var str = 'пример';
str.length;
Out[18]:
In [19]:
var str = 'пример';
var tempStr = new String(str);
tempStr.length;
Out[19]:
In [21]:
var base = 'string';
var strObj = new String(base);
var str = String(strObj);
str
Out[21]:
string.length
string[index]
)индекс
выходит за пределы диапазона индекса символов, возвращается undefined
string[-1]
or string[string.length]
charAt(index)
индекса
string.concat(string2)
string.replace(str1, str2)
str1
в str2
string.search(regex)
string.indexOf(substring [,position])
substring
в строку следующую после position
0
индексаsubstring
, возвращается -1
string.lastIndexOf(substring [,position])
substring
в строку которое предшествует position
string.length
substring
, возвращает -1
string.split(separator)
separator
и возвращает массив строк, содержащий разделенные частиstring.trim()
str.trimLeft()
, str.trimRight()
string.substr(start, length)
start
и заканчивающуюся через length
символовlength
опциональноstring.substring(start, end)
start
и заканчивающуюся позицией end
string.valueOf()
In [24]:
var str = 'Пример строки для того, чтобы вывести ее';
console.log(str);
console.log('length = ' + str.length);
console.log('str[' + 4 + '] = ' + str[4]);
console.log('str.charAt(' + 4 + ') = ' + str.charAt(4));
console.log('"' + str + '".indexOf("string") = ' + str.indexOf('строки'));
console.log('"' + str + '".indexOf("string",8) = ' + str.indexOf('чтобы', 8));
console.log('"' + str + '".indexOf("string",23) = ' + str.indexOf('вывести', 23));
console.log('"' + str + '".substr(3,5) = "' + str.substr(3, 5) + '"');
console.log('"' + str + '".substring(3,5) = "' + str.substring(3, 5) + '"');
Out[24]:
'Имя' + ' ' + 'Фамилия'
var strConcat1 = str1 + str2;
var strConcat2 = str.concat(str2);
+
array.join("")
для объедиения строк[].push(srt1, str2, str3, …).join('');
In [30]:
function StringBuilder() {
return {
strs: [],
len: 0,
append: function (str) {
this.strs[this.len++] = str;
return this;
},
toString: function () {
return this.strs.join("");
}
};
}
var count = 20;
var s = 'Привет мир!';
var str = '';
for (var i = 0; i < count; i++) {
str += s + s + s + s + s;
}
var stringBuilder = new StringBuilder();
for (var i = 0; i < count; i++) {
stringBuilder.append(s).append(s).append(s).append(s).append(s);
}
var result = stringBuilder.toString();
console.log(result);
Out[30]:
<
, >
, &
, '
и "
var script = document.createElement('script');
script.innerHTML = 'document.location = \'http://bad_place.com\'';
document.body.appendChild(script);
String.prototype.htmlEscape = function () {
let escapedStr = String(this)
.replace(/&/g, '&');
.replace(/</g, '<');
.replace(/>/g, '>');
.replace(/"/g, '"');
.replace(/'/g, ''');
return escapedStr;
}
string.trim()
, string.trimLeft()
, string.trimRight()
string.trimChars(chars)
, string.trimLeftChars(chars)
, string.trimRightChars(chars)
In [40]:
(function () {
if (!String.prototype.contains) {
String.prototype.contains = function (searchPattern) {
var patternLen = searchPattern.length;
for (var i = 0, length = this.length - patternLen; i < length; i++) {
var isMatch = true;
for (var j = 0; j < patternLen; j++) {
if (searchPattern[j] !== this[i + j]) {
isMatch = false;
break;
}
}
if (isMatch) {
return true;
}
}
}
}
if (!String.prototype.toCharArray) {
String.prototype.toCharArray = function () {
return this.split('');
}
}
if (!String.prototype.trimLeft) {
String.prototype.trimLeft = function () {
return this.replace(/^\s+/, '');
}
}
if (!String.prototype.trimRight) {
String.prototype.trimRight = function () {
return this.replace(/\s+$/, '');
}
}
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.trimLeft().trimRight();
}
}
if (!String.prototype.trimLeftChars) {
String.prototype.trimLeftChars = function (chars) {
var regEx = new RegExp('^[' + chars + ']+');
return this.replace(regEx, '');
}
}
if (!String.prototype.trimRightChars) {
String.prototype.trimRightChars = function (chars) {
var regEx = new RegExp('[' + chars + ']+$');
return this.replace(regEx, '');
}
}
if (!String.prototype.trimChars) {
String.prototype.trimChars = function (chars) {
return this.trimLeftChars(chars).trimRightChars(chars);
}
}
if (!String.prototype.htmlEscape) {
String.prototype.htmlEscape = function () {
return this.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/ /g, ' ');
}
}
if (!String.prototype.padLeft) {
String.prototype.padLeft = function (count, char) {
char = char || ' ';
if (char.length > 1) {
return String(this);
}
if (this.length >= count) {
return String(this);
}
var str = String(this);
for (var i = 0, thisLen = str.length; i < count - thisLen; i++) {
str = char + str;
}
return str;
}
}
if (!String.prototype.padRight) {
String.prototype.padRight = function (count, char) {
char = char || ' ';
if (char.length > 1) {
return String(this);
}
if (this.length >= count) {
return String(this);
}
var str = String(this);
for (var i = 0, thisLen = this.length; i < count - thisLen; i++) {
str += char;
}
return str;
}
}
})();
var str = ' хали гали пара трупер ';
console.log('обрезаем пробелы');
console.log('оригинал: !' + str + '!');
console.log('обрезка: !' + str.trim() + '!');
console.log('обрезать слева: !' + str.trimLeft() + '!');
console.log('обрезать справа: !' + str.trimRight() + '!');
str = 'хали гали пара трупер';
var chars = 'пер';
console.log();
console.log('обрезка символов: ' + chars);
console.log('оригинал: !' + str + '!');
console.log('обрезанная: !' + str.trimChars(chars) + '!');
console.log('обрезка слева: !' + str.trimLeftChars(chars) + '!');
console.log('обрезка справа: !' + str.trimRightChars(chars) + '!');
Out[40]:
str.padLeft(count [,char])
, str.padRight(count [,char])
In [39]:
var string = 'Пример строки';
console.log('оригинал: "' + string + '"');
console.log('padLeft(30) -> "' + string.padLeft(30).htmlEscape() + '"');
console.log('padRight(30) -> "' + string.padRight(30).htmlEscape() + '"');
console.log('padLeft(30) -> "' + string.padLeft(30,"-")+ '"');
console.log('padRight(30) -> "' + string.padRight(30,"-").htmlEscape() + '"');
Out[39]: