如何仅使用正则表达式获取字符串的特定部分?

时间:2019-05-13 17:56:38

标签: javascript regex

在输入字段中,我的值是A=123,我需要JavaScript代码才能仅获取123部分。

这是我到目前为止尝试过的:

function formAnswer() {
    var input = document.getElementById('given').value;
    var match = input.match(/A=.*/);
    document.getElementById('result').value = match;
}
<input type="text" id="given" placeholder="Given" value="A=123"/>
<input type="text" id="result" placeholder="Result"/>
<input type="button" value="Click!" onClick="formAnswer();"/>

但这仍然得到值A=123。我在这里做什么错了?

2 个答案:

答案 0 :(得分:4)

在正则表达式中使用括号以捕获A=之后的内容。捕获的值将与match[1]一起使用(match[0]将是整个表达式)。

function formAnswer() {
  let input = document.getElementById('given').value;
    match = input.match(/A=(.*)/);
    
  document.getElementById('result').value = match[1];
}
<input type="text" id="given" placeholder="Given"/>
<input type="text" id="result" placeholder="Result"/>
<input type="button" onClick="formAnswer();"/>

答案 1 :(得分:1)

您可以尝试以下正则表达式:(?<=A=).*

它只是搜索以“ A =“

开头的字符串

function formAnswer() {
  var input = document.getElementById('given').value;
  var match = input.match(/(?<=A=).*/);
  document.getElementById('result').value = match;
}
<input type="text" id="given" placeholder="Given" value="A=123" />
<input type="text" id="result" placeholder="Result" />
<input type="button" onClick="formAnswer();" value="Check" />