Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.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_Html_Css - Fatal编程技术网

从Javascript中的字符串中提取以特定字符开头的单词

从Javascript中的字符串中提取以特定字符开头的单词,javascript,html,css,Javascript,Html,Css,我有一个字符串,如下所示 var str = "This product price is £15.00 and old price is £19.00"; 我需要一个以“英镑”开头的单词; 结果应为“15.00英镑”、“19.00英镑” 如何在Javascript中实现它?使用方法 var str=“此产品价格为15.00英镑,旧价格为19.00英镑”; //如果` ``跟在非数字后面,则使用 console.log(str.match(/£\S+/g)); //如果```只跟在带分数的数

我有一个字符串,如下所示

var str = "This product price is £15.00 and old price is £19.00";
我需要一个以“英镑”开头的单词; 结果应为“15.00英镑”、“19.00英镑” 如何在Javascript中实现它?

使用方法

var str=“此产品价格为15.00英镑,旧价格为19.00英镑”;
//如果` ``跟在非数字后面,则使用
console.log(str.match(/£\S+/g));
//如果```只跟在带分数的数字后面

console.log(str.match(/£(\d+(\.\d+)))/g)存在以下可能性:

var myChar = '£';
var str = "This product price is £15.00 and old price is £19.00";
var myArray = str.split(' ');
for(var i = 0; i < myArray.length; i++) {
  if (myArray[i].charAt(0) == myChar) {
    console.log(myArray[i]);
  }
}
var myChar=';
var str=“此产品价格为15.00英镑,旧价格为19.00英镑”;
var myArray=str.split(“”);
对于(var i=0;i
使用
.split()
将字符串转换为数组,然后使用
.filter
创建一个新数组,其中包含您要查找的内容

var str=“此产品价格为15.00英镑,旧价格为19.00英镑”;
var r=str.split(“”).filter(函数(n){
如果(/£/.test(n))返回n;
});

控制台日志(r)您可以使用正则表达式如下所示,将每个已识别的单词(在本例中为价格)存储在一个数组中,然后在需要时获取它

var re = /(?:^|[ ])£([a-zA-Z]+)/gm;
var str = 'This product price is £15.00 and old price is £19.00';
var identifiedWords;

while ((identifiedWords = re.exec(str)) != null) {
if (identifiedWords.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the "identifiedWords" variable.
// eg identifiedWords[0] etc.
}

您可以通过使用正则表达式来实现这一点:

let str = "This product price is £15.00 and old price is £19.00";
let res = str.match(/£[0-9]+(.[0-9]{1,2})?/g);
结果将是:

["£15.00", "£19.00"]
简要说明:

此正则表达式匹配所有以
符号开头,后跟至少一到n个数字的单词

£[0-9]+
..和可选有两个十进制数字

(.[0-9]{1,2})?

g
修饰符导致全局搜索。

使用带有正则表达式的
.match()
方法。我知道它将返回字符串的索引。我还使用.match()获得了解决方案。