jQuery.parseHTML()产生一个数组.我正在寻找一种方法将其转换回字符串.这是我的首要问题.
是parseHTML()将字符串视为html的唯一方法吗?
从根本上说,我将我的字符串解析为html,这样我就可以使用find()jQuery的函数来匹配某个元素,然后只对该部分代码执行替换(有关更多详细信息,请参阅我之前的问题).那么,解析为必要的HTML吗?
@ thg435将这个答案写成了一个javascript 问题:
> a = "foo 1234567890 bbb 123456"
"foo 1234567890 bbb 123456"
> a.replace(/\d(?=\d\d(\d{3})*\b)/g, "[$&]")
"foo 1[2]34[5]67[8]90 bbb [1]23[4]56"
Run Code Online (Sandbox Code Playgroud)
它适用于印度 - 阿拉伯数字; 即1,2,3,4,.... 但是当我尝试将正则表达式应用于东方阿拉伯数字时,它失败了.下面是我用正则表达式(我刚刚替换\d用[\u0660-\u0669]):
/[\u0660-\u0669](?=[\u0660-\u0669][\u0660-\u0669]([\u0660-\u0669]{3})*\b)/g
Run Code Online (Sandbox Code Playgroud)
如果我的字符串是????foo,它实际上有效,但是当它是???? foo甚至是失败时foo????:
> a = "????foo ???? foo foo????"
"????foo ???? foo foo????"
> a.replace(/[\u0660-\u0669](?=[\u0660-\u0669][\u0660-\u0669]([\u0660-\u0669]{3})*\b)/g, "[$&]")
"?[?]??foo ???? foo foo????"
Run Code Online (Sandbox Code Playgroud)
对我来说真正重要的是分开的数字(例如????).为什么它不能匹配分隔的数字?
更新:
另一个要求是正则表达式只应匹配5位或更多位数(例如12345而不是1234).我最初认为这就像{5,}在表达式的末尾添加一样简单,但这不起作用.
我有一个只匹配字符串中的一个字符的正则表达式。我想测试其包含字符串的长度,如果它大于 4,则进行替换。例如,正则表达式是/\d/. 我想使用 replace 的功能形式来匹配12345而不是1234.
就像是:
text.replace(regex, function(match) {
if (STRING.length > 4)
return replacement
else
return match;
});
Run Code Online (Sandbox Code Playgroud)
注意:
/\d/只是一个例子。我没有提到真正的正则表达式来关注我真正的问题,如上所示。