【问题标题】:Regular Expression between two words两个单词之间的正则表达式
【发布时间】:2026-01-28 17:10:02
【问题描述】:

非常感谢您的帮助。发生的情况是我的代码通过 ajax 从 php 文件中获取了一个字符串。 php 文件返回一个长字符串,其中包含以下"css":["DSK\/y"],"js":["V5Llk","1dVnw"],"onload":["goURI(\"\\\/procedure\\\/376993639056176\\\/?context=create\");"],"bootloadable":{"IframeShim":{"resources":[...

我想要的是使用作为服务器变量的 javascript 获取数字 376993639056176 并使用它来保持进程。你能帮我吗?

【问题讨论】:

  • 这个数字总是 15 位长吗?是否总是在/ 前面,后面是`\\`?该字符串的哪些部分将是一致的? “正则表达式”的关键部分是它们可用于匹配常规格式字符串中的内容;如果字符串 isn't 常规(或不是可预测的格式)然后正则表达式开始失败。你所说的“......并保持一个过程”是什么意思?将其分配给一个变量、调用一个函数、启动一个或另一个 Ajax 请求......?
  • 您的问题中的... 是什么?请发布整个结果
  • @DavidThomas 不,它是一个数字字符串,但它总是出现在带有 \\\/ 的“程序”字之后。谢谢
  • @BrunoVieira 我不能完整地发布这个,它是一个接近 2000 字符长的字符串。但我补充了它。
  • 查看我的答案和功能小提琴中的编辑

标签: javascript ajax regex parsing


【解决方案1】:

您的服务器正在返回一个包含多个信息的 JSON,并且您需要它的“onload”属性的数字部分。您可以执行以下操作

以下函数将仅从您的字符串中获取数字

var serverJSONString = stringReturnedByServer();
var longUri = serverJSONString.onload[0]; //This will get only the "onload" string;
var decodedNumber = longUri.replace (/[^\d]/g, "");
alert(decodedNumber);

这是一个函数fiddle

【讨论】:

  • 好吧,我不是很清楚。我刚刚编辑了这个问题,你能检查一下吗?谢谢! :D
【解决方案2】:

如果该字符串中唯一的数字实际上是您要查找的数字,则可以使用像这样的正则表达式

 var regex = new RegExp("[^0-9]*([0-9][0-9]*)[^0-9]*","g")
 var number = yourString.replace(regex,"$1");

【讨论】:

  • 但它不是唯一的数字字符串。
  • 那么固定模式是什么? onload":["goURI(\"\\\/procedure\\\/WHATEVER_IS_HERE\\\/?.... 甚至goURI字符串也可以不同?
最近更新 更多