我编写的代码用逗号分隔字符串:
"Keyword,slug,description".split(',');
这会产生类似["Keyword", "slug", "description"]
这种情况有效一段时间,直到有人在描述中需要逗号。
我知道我可以用split
替换match
并使用正则表达式,但我能提出的唯一正则表达式涉及负面的后观,如下所示:
"Keyword,slug,description".match(/(?<!\\),/);
不幸的是,JavaScript并不支持外观。
还有其他办法吗?
答案 0 :(得分:1)
所以使用match而不是split
"Keyword,slug,description".match(/([^,]+),([^,]+),(.*)/);
将导致
["Keyword,slug,description", "Keyword", "slug", "description"]
还有其他方法来编写正则表达式,只需快速选择一些东西。
答案 1 :(得分:1)
这是一个不那么好的方式,但一般原则可以派上用场:
"keyword,slug,foo\\,bar"
.replace( '\\,', '{COMMA}' )
.split(',')
.map(function(v){return v.replace('{COMMA}',',')})
答案 2 :(得分:0)
如果您手动将字符串作为输入,则可以通过HTML实体转义逗号。
var message = 'This is a message with some comma(,) and (,) ';
message = message.replaceAll(",", ",");
var params = 'title=Confirm,message='+message+'position=middle';
showAlert(params);
现在常规的.split方法可以使用
function showAlert(params) {
params = params.split(",");
// ...
}