我最近与同事讨论了如何通过JavaScript在内部处理String.split
的分隔符。
分隔符是否始终转换为正则表达式?例如。会调用String.split(",", myvar)
将","
转换为匹配该字符串的regualar表达式吗?
答案 0 :(得分:0)
是的,javascript函数拆分允许你使用正则表达式: EX:
var str = "I am confused";
str.split(/\s/g)
Str然后包含[“I”,“am”,“confused”]
答案 1 :(得分:0)
分隔符指定用于分隔字符串的字符。分隔符被视为字符串或正则表达式。如果省略separator,则返回的数组包含一个由整个字符串组成的元素。如果separator是一个空字符串,str将转换为一个字符数组。
请参阅以下链接以了解更多相关信息,希望它能为您提供帮助:
答案 2 :(得分:0)
这是official writeup over at ecma,但相关部分围绕此部分:
8.如果分隔符是一个RegExp对象(其[[Class]]是“RegExp”),则让R =分隔符;否则让R = ToString(分隔符)。
据说这是ecma规范,正如Anthony Grist在评论中提到的,浏览器可以按照自己的意愿实现,例如V8实现了ecma262。
编辑:扩展了对浏览器/ js引擎实现的思考,看来大部分实现了ecma的版本,as seen on this wiki
答案 3 :(得分:0)
您的问题的答案是:“分隔符是否始终转换为正则表达式?”是:
这完全取决于实施。例如,如果您查看WebKit实现http://svn.webkit.org/repository/webkit/trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp(找到stringProtoFuncSplit),那么您会发现它并不总是转换为RegEx。但是,这并不意味着什么,这只是一个实施问题