Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将元素数组转换为字符串并使用javascript解析它们?_Javascript_Parsing - Fatal编程技术网

如何将元素数组转换为字符串并使用javascript解析它们?

如何将元素数组转换为字符串并使用javascript解析它们?,javascript,parsing,Javascript,Parsing,现在我有了一个元素数组。我想将它们转换成字符串数组,并在onclick之后解析出信息。所以我想我有两个问题,第一个是如何将它们转换成字符串,第二个是如何使用正则表达式来解析它们?我可以自己编写正则表达式,但我想知道如何将其应用于javascript中的字符串 首先,我这样做: var array = $('a[onclick*="findCustomer"]'); 现在,我有一份清单: <a href="javascript:void(0);" onclick="findCust

现在我有了一个元素数组。我想将它们转换成字符串数组,并在onclick之后解析出信息。所以我想我有两个问题,第一个是如何将它们转换成字符串,第二个是如何使用正则表达式来解析它们?我可以自己编写正则表达式,但我想知道如何将其应用于javascript中的字符串

首先,我这样做:

var array = $('a[onclick*="findCustomer"]');
现在,我有一份清单:

    <a href="javascript:void(0);" onclick="findCustomer('James Smith',808-371-   4984,"Hawaii")">James Smith</a>

所以我的问题是如何将其转换为字符串数组,以及如何从中解析出客户的姓名、电话号码和状态

所以我的问题是如何将其转换为字符串数组,以及如何从中解析出客户的姓名、电话号码和状态

首先获取所有onclick属性(因为您似乎想要使用jQuery,这可以通过使用来完成)

然后解析属性,例如使用

尝试使用RegExp作为解析x/HTML是一个非常糟糕的主意。我展示的方法应该可以,因为您知道onclick属性的结构。
然而,一个更好的解决方案是,通过其他一些根本不涉及解析HTML的方法来访问这些数据。

解析什么信息?这些元素是否构成字段,您需要这些值?带元素数据的div?需要更多详细信息,示例HTML会很有帮助。请阅读为什么不使用regex解析x/HTML
808-371-4984
不是用引号括起来的,
hawai
是用双引号括起来的,所以反斜杠或简单的引号。@BaliBalo反斜杠不是HTML中的转义字符(在JavaScript中)您必须将
编码为
&&34;
并将
'
编码为
&&39;
(为了安全)。是的,我的错。
var array = $.map($('a[onclick*="findCustomer"]'), function (elm) {
    return elm.getAttribute('onclick');
}); // `array` is now an array of the _onclick_ attributes
$.each(array, function (key, val) {
    var parts = val.slice(val.indexOf('(')+1, val.lastIndexOf(')')).split(',');
    // parts[0] is name, parts[1] is number, parts[2] is state
    // you'll need to trim quotes
});