使用RegEx

时间:2017-08-14 13:01:28

标签: javascript regex

我是RegEx的新手,但将它用于我的项目会非常有用。我想在Javascript中做的是:

我有这种字符串“/ this / is / an / example”,我想提取该字符串的每个单词,也就是说:

“/ this / is / an / example” - >这是一个例子。然后使用每个单词。

到目前为止,我做到了:

var str = "/this/is/a/test"; 
var patt1 = /\/*/g;
var result = str.match(patt1);
document.getElementById("demo").innerHTML = result;

它返回我:/ ,,,,, / ,,, / ,, / ,,,,,

我知道我必须使用.slice函数接下来如果我可以通过使用搜索来识别每个“/”的位置但是使用搜索它只会返回第一个“/”的索引,也就是说在这种情况下为0。

我找不到。

任何想法?

提前致谢!

3 个答案:

答案 0 :(得分:3)

使用split()

  

split()方法通过将字符串分隔为子字符串,将String对象拆分为字符串数组,使用指定的分隔符字符串来确定每次拆分的位置。

var str = "/this/is/a/test"; 
var array = str.split('/');
console.log(array);

如果您想使用正则表达式。

var str = "/this/is/a/test"; 
var patt1 = /(\w+)/g;
var result = str.match(patt1)
console.log(result);

答案 1 :(得分:1)

嗯,我想这取决于你对“'字”的定义,有一个'字符'匹配可能是你想要的:

var patt1 = /(\w+)/g;

Here is a working example of the regex

完整的JS示例:



var str = "/this/is/a/test"; 
var patt1 = /(\w+)/g;
var match = str.match(patt1);

var output = match.join(", ");
console.log(output);




答案 2 :(得分:1)

您可以使用此正则表达式:/\b[^\d\W]+\b/g,以使特定单词只访问数组中的索引。例如result[0] == this

var str = "/this/is/a/test";
var patt1 = /\b[^\d\W]+\b/g;
var result = str.match(patt1);
document.getElementById("demo").innerHTML = result;
<span id="demo"></span>