JS 匹配ID名称 提取ID值 ,详情请看下面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 匹配ID名称 提取ID值 ,详情请看下面相关的知识,希望对你有一定的参考价值。

str='<input tabindex="26" id="c_0_chengdu" name="acl[0][data][]" value="chengdu" type="checkbox">成都'

正则提取字符

id="c_0_chengdu"

/(id=\"[a-z_0-9]+\")/gi.exec(str);
如果要任何字符都能提取出来则可以写成这样
/(id=\"[^\"]+\")/gi.exec(str);追问

谢谢啊 ,这个 怎么用? 对JS 的正则不输

追答var str='<input tabindex="26" id="c_0_chengdu" name="acl[0][data][]" value="chengdu" type="checkbox">成都';
var str1='<input tabindex="26" id="  " name="acl[0][data][]" value="chengdu" type="checkbox">成都';
var str2='<input tabindex="26" id=" x " name="acl[0][data][]" value="chengdu" type="checkbox">成都';
/(id=\\"[^\\"]+\\")/gi.exec(str);
//匹配结果:["id="c_0_chengdu"", "id="c_0_chengdu""]
/(id=\\"[^\\"]+\\")/gi.exec(str1);
//匹配结果:["id="  "", "id="  ""]
/(id=\\"[^\\"]+\\")/gi.exec(str2);
//匹配结果:["id=" x "", "id=" x ""]

参考技术A var re = /id=\"[a-z0-9_]\"/g/i;
re.test(str);追问

能不能把中间的换成星号,id=" * " 就是不管id=" " 里面是什么都能提取出来

根本匹配不出来!

从每个 id 的字符串中提取多个值

【中文标题】从每个 id 的字符串中提取多个值【英文标题】:Extract multiple values from a string for each id 【发布时间】:2021-05-19 07:50:04 【问题描述】:

我想从每个 id 的字符串列中提取匹配项。我怎样才能做到这一点?

+--------+---------------------------------------+
|   id   |                 text                  |
+--------+---------------------------------------+
| fsaf12 | Other Questions,Missing Document      |
| sfas11 | Others,Missing Address,Missing Name   |
+--------+---------------------------------------+

期望的输出:

+--------+------------------+
|   id   |    extracted     |
+--------+------------------+
| fsaf12 | Other Questions  |
| fsaf12 | Missing Document |
| sfas11 | Others           |
| sfas11 | Missing Address  |
| sfas11 | Missing Name     |
+--------+------------------+

这里是样本数据的查询:FIDDLE

【问题讨论】:

我不知道为什么这个问题被否决了。这看起来很简单,但对于新的来说有点棘手。 【参考方案1】:

您可以使用regexp_split_to_table 来满足您的要求,如下所示:

WITH t1 AS (
    SELECT 'fsaf12' AS id, 'Other Questions,Missing Document' AS text UNION ALL
    SELECT 'sfas11', 'Others,Missing Address,Missing Name'
)
SELECT id, regexp_split_to_table(text,',')
FROM t1

输出


| id        | extracted             |
|-----------|-----------------------|
| fsaf12    | Other Questions       |
| fsaf12    | Missing Document      |
| sfas11    | Others                |
| sfas11    | Missing Address       |
| sfas11    | Missing Name          |

DEMO

【讨论】:

【参考方案2】:

Postgres 根本不是我的强项,但基于此older 帖子,您可以尝试使用unnest()。我添加了一个TRIM() 以在拆分后删除可能的栏杆空间:

SELECT id, TRIM(unnest(string_to_array(text, ','))) as "extracted" FROM t1;

或者,如果你想使用regexp_split_to_table()

SELECT id, regexp_split_to_table(text, '\s*,\s*') as "extracted" FROM t1;

这里我们匹配 0+ 个空白字符、一个文字逗号和 0+ 个空白字符。

【讨论】:

以上是关于JS 匹配ID名称 提取ID值 ,详情请看下面的主要内容,如果未能解决你的问题,请参考以下文章

当id与输入框名称扩展名id匹配时,如何在单列中将动态输入框值插入表中

jmeter中的beanshell里怎么判断两个值大小

js对象替换键值名称

jquery 取id模糊查询

如何比较两个数组并在id匹配的情况下更改名称?

从 Clob 列中提取 XML 标记值,在 Oracle 中具有多个具有相同名称的标记