网站搜索

将字符串拆分以初始化 JavaScript 数组有哪些优点?

这种模式非常常见;我在包括 jQuery 源代码在内的一些地方见过它:

var arr = "word1 word2 word3".split(" ");

作为数组初始化“正常”方法的替代方案:

var arr1 = [ "word1", "word2", "word3" ]; var arr2 = new Array( "word1", "word2", "word3" );

字符串拆分方法的好处有哪些?

答案#1

来自 John Resig(jQuery 的创建者):

“我看到的唯一好处是源代码中的字符数和一条字符串,而不是多条。” Bingo!

现在想想,我认为 Closure 可能会优化这一点(不认为 YUIMin 做到了)。我可以再检查一下它。

此外,谷歌 JavaScript 风

阅读更多 →

javascript - 在 Chrome 中 toLocaleDateString() 怎么工作?

我明白 JavaScript 方法 toLocaleDateString() 使用了计算机设置。

让我们看一下 W3Schools 的例子:当我更改电脑的日期和时间格式时,Firefox 或 IE 的结果会不同(如预期),但是 Chrome 仍然显示相同的日期格式,这是为什么?

答案#1

看起来 Chrome 并不使用 Windows 的区域设置,而是使用它自己的设置。这些设置可以通过 设置 > 高级设置 > 语言 来访问。然而,日期格式并没有明确定义,它是根据语言 + 国家选择推断的,例如:

  • 英语(美国)将日期格式设置为 mm/dd/yyyy
  • 英语(英国)将日期格式设置为dd/mm/yyyy

(对于任何尝试更改这些的人,不要像我一样忘记重启 Chrome,以使设置生效)

回到最初的问题,看起来只要目的是以人类用户能够理解的格式显示信息,使用 toLocaleDateString(

阅读更多 →

在 Javascript 中根据字符串输入生成唯一数字

过去我写了一个函数,可以从字符串生成一个唯一的 ID(数字)。今天我发现它的唯一性并不像预期的那样。我以前从未遇到过问题。今天两个不同的输入生成了相同的 ID(数字)。

我在 Delphi、C++、PHP 和 Javascript 中使用相同的技术来生成相同的 ID,因此在涉及不同语言的项目中没有区别。例如,这对于通信、HTML ID、临时文件等可能非常方便。

一般来说,我所做的是计算一个字符串的 CRC16,加入该和并返回它。

例如,这两个字符串生成相同的 id(数字):

o.uniqueId( 'M:/Mijn Muzi

阅读更多 →

javascript - 在二进制字符串中查找模式

我正在尝试在一串二进制数字中找到重复的模式。

例如 0010010010 或 1110111011=可以

不。0100101101=坏的

这些字符串是10位数字(如上所示),我猜‘模式’的最少迭代次数是2次。

我开始手动设置一个程序可以匹配的“模式库”,但一定有使用算法的更好方法吧?

搜索没有结果——我觉得我使用的语言和术语不正确……

答案#1

相当有挑战。这个函数怎么样?

function findPattern(n) { var maxlen = parseInt(n.length/2);

阅读更多 →

javascript - JSON stringify 将浮点数转换为整数

我正在使用 Node.js 和内置的 JSON 对象将一个 JSON 对象转换为字符串。在该对象中是

{ weight : 1.0 }

然而,当我将其字符串化并写入文件时,输出是 weight : 1。

答案#1

正如在对类似问题的回答中以及在这个 MSDN 页面上所指出的:

在 JavaScript 中没有所谓的整数。JavaScript 中的数字是“采用双精度 64 位格式的 IEEE 754 值”。

打开你的网页浏览器的控

阅读更多 →

java - Struts2 BigDecimal 转换器无法转换为字符串

我有以下代码:

xwork-conversion.properties

java.math.BigDecimal=demo.BigDecimalConverter

BigDecimal转换器.java

package demo; import java.math.BigDecimal; import java.util.Map; import org.apache.strut

阅读更多 →

javascript - ScalaJS:如何将字符串转换为字符串?

假设我有一个字符串列表:List[String]。我想将它转换为可互操作的 JavaScript 字符串数组:js.Array[js.String]。该怎么做?

答案#1

做到这一点最简单的方法如下:myList.map(x => x: js.String).toArray 如果你需要使用不止一次,可以将其提取为隐式转换。

编辑:此答案已过时。请参阅 @gzm0 的答案。

答案#

阅读更多 →

Javascript 正则表达式 - 使用白名单清理字符串

我有一个非常基础的正则表达式问题。我正在尝试使用白名单清理一个输入字段。我只想允许数字和小数点输入到我的字段中。如果用户输入了无效字符,我想将其从输入中删除,并用一个干净的字符串替换输入。

我可以让它只用数字工作,但我无法将小数点加入允许的字符池中:

var sanitize = function(inputValue) { var clean = "", numbersOnly = /[^0-9]/g; // only numbers & a decimal place if (inputValue) { if (numbersOn

阅读更多 →

Java - 在 JavaScript 中将二进制字符串解析为字节

我有一个像 "11100011" 这样的二进制字符串,我想把它转换成一个字节。我在 Java 中有一个工作示例,如下所示:

byte b1 = (byte)Integer.parseInt("11100011", 2); System.out.println(b1);

这里输出将是 -29。但是如果我在 JavaScript 中写一些类似的代码,如下所示:

parseInt('11100011', 2);

我得到的输出是227

阅读更多 →

javascript - 我如何才能安全地对可能是简单字符串或字符串对象的字符串对象使用 JSON.parse?

我需要能够解析对象格式或普通字符串格式的字符串。做到这一点最安全的方法是什么?

我尝试了 JSON.parse(data),但在 data 是普通字符串的情况下它不起作用。

编辑 - 选择的解决方案

多亏了你,我是这样解决这个问题的:

try { dataObj = JSON.parse(data); } catch (err) { if (typeof dat

阅读更多 →