如何以易于阅读(针对人类读者)格式显示JSON?我主要是寻找缩进和空白,甚至可能是颜色/字体样式等.
在Perl中,我可以使用以下语法多次重复一个字符:
$a = "a" x 10; // results in "aaaaaaaaaa"
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来实现这个Javascript?我显然可以使用一个函数,但我想知道是否有任何内置方法,或其他一些聪明的技术.
我正在寻找一个简单的公共方法或运算符,它允许我重复一些字符串n次.我知道我可以使用for循环来编写它,但我希望在必要时避免使用循环,并且某处应该存在一个简单的直接方法.
String str = "abc";
String repeated = str.repeat(3);
repeated.equals("abcabcabc");
Run Code Online (Sandbox Code Playgroud)
相关:
repeat string javascript 通过重复给定次数的另一个字符串来创建NSString
编辑
当他们不是完全必要的时候我试着避免循环,因为:
即使它们隐藏在另一个函数中,它们也会增加代码行数.
读我的代码的人必须弄清楚我在循环中做了什么.即使它被评论并且具有有意义的变量名称,它们仍然必须确保它没有做任何"聪明"的事情.
程序员喜欢把聪明的东西放在for循环中,即使我把它写成"只做它想要做的事情",这并不排除有人出现并增加一些额外的聪明"修复".
他们经常容易出错.对于涉及索引的循环,往往会产生一个错误.
For循环经常重用相同的变量,增加了很难找到范围错误的机会.
For循环增加了bug猎人必须看的地方数量.
我需要一个JavaScript函数,它可以获取一个值并将其填充到给定的长度(我需要空格,但任何事情都可以).我找到了这个:
码:
String.prototype.pad = function(l, s, t){
return s || (s = " "), (l -= this.length) > 0 ? (s = new Array(Math.ceil(l / s.length)
+ 1).join(s)).substr(0, t = !t ? l : t == 1 ? 0 : Math.ceil(l / 2))
+ this + s.substr(0, l - t) : this;
};
Run Code Online (Sandbox Code Playgroud)
例:
<script type="text/javascript">
//<![CDATA[
var s = "Jonas";
document.write(
'<h2>S = '.bold(), s, "</h2>",
'S.pad(20, "[]", 0) = '.bold(), s.pad(20, "[]", 0), "<br />",
'S.pad(20, "[====]", 1) …Run Code Online (Sandbox Code Playgroud) 所以,我的问题已由其他人在其Java表单中提出:Java - 创建一个具有指定长度并填充特定字符的新String实例.最佳方案?
...但我正在寻找它的JavaScript等价物.
基本上,我想根据每个字段的"maxlength"属性动态填充带有"#"字符的文本字段.因此,如果输入有maxlength="3",则该字段将填充"###".
理想情况下会有像Java这样的东西StringUtils.repeat("#", 10);,但到目前为止,我能想到的最好的选择是循环并追加"#"字符,一次一个,直到达到最大长度.我无法摆脱这种感觉,即有一种比这更有效的方法.
有任何想法吗?
仅供参考 - 我不能简单地在输入中设置默认值,因为"#"字符需要清除焦点,如果用户没有输入值,则需要在模糊时"重新填充".这是我关注的"补充"步骤
我有一个标准的jQuery插件设置,在顶部创建默认设置:
jQuery.fn.myPlugin = function(options) {
var defaults = {
starts: "0px,0px",
speed: 250, ...
};
o = $.extend(defaults, options);
}
Run Code Online (Sandbox Code Playgroud)
我有另一个变量叫numberOfObjects.
我正在尝试循环默认变量.对于找到的每个对象(from numberOfObjects),我需要复制变量值的值.所以,如果numberOfObjects变量是3,则defaults.starts应该是0px,0px > 0px,0px > 0px,0px.>用于分割值.
这就是我现在拥有的.X表示默认值中的变量名称.Y表示当前值的变量x.我已经走到这一步,并且不知道下一步该做什么.
for (x in defaults) { // x is defaults.x
defaults.x = defaults.x + " > y";
}
Run Code Online (Sandbox Code Playgroud) 在JavaScript中,如何创建重复字符串的字符串x次:
var s = new String(" ",3);
//s would now be " "
Run Code Online (Sandbox Code Playgroud) 我正在编写JavaScript单元测试,我需要创建一个长度为65536的字符串.在JavaScript中执行此操作的最佳方法是什么?
目前我正在使用:
var myString = '';
for (var i = 0; i <= 65535; ++i) {
myString += 'x';
}
Run Code Online (Sandbox Code Playgroud) 有没有更好的方法来为字符串添加x量的空白?
str = "blah";
x = 4;
for (var i = 0; i < x; i++){
str = ' ' + str;
}
return str;
Run Code Online (Sandbox Code Playgroud) 假设我有一个文本字段,用户可以在其中提交代码片段.我想检测字符串中何时出现特定单词,然后对该单词后面的单词/字符执行某些操作.
假设我们有一个字符串,在单词睡衣之后我想在没有缩进的新行上启动其余代码.(非常类似于代码美化器的工作方式.)输出将在内部呈现pre,因此我不需要任何<br>标记或其他HTML标记.
虽然有一些捕获量.
!,下面的代码必须从一个新的行开始,并以制表符作为缩进.例:
输入:
Bananas! Apples and pears walk down pyjamas the street! and they say pyjamas hi to eachother, pyjamas But then! some one else comes pyjamas along pyjamas Who is he?, pyjamas I don't know who! he is pyjamas whatever,,
Run Code Online (Sandbox Code Playgroud)
输出:
Bananas!
Apples and pears walk down pyjamas
the street!
and they say pyjamas
hi to eachother
, pyjamas
But …Run Code Online (Sandbox Code Playgroud) javascript ×9
string ×7
html ×2
character ×1
java ×1
jquery ×1
json ×1
pretty-print ×1
regex ×1
repeat ×1