如何使用javascript分割单词

时间:2011-10-05 11:44:51

标签: javascript split

这可能是一个简单的问题但是,我如何分割单词...例如

a = "even, test"

我使用.split用空格分隔文本。

所以结果就像是

a = "even,"
b = "test"

但是,如何删除“逗号”?

但在某些情况下,它可能会“甚至测试”,在某些情况下,我可能会“平衡,​​测试”。一切都是动态的,那么如何检查它们呢?

由于

7 个答案:

答案 0 :(得分:13)

首先,split()函数不是jQuery - 它是纯Javascript。

您是否尝试使用逗号和空格进行拆分?在你的情况下,这样做会很好:

var result = input.split(', ');

对于更复杂的拆分,您可以使用正则表达式模式匹配,以允许两个字段之间有多个逗号或空格:

var result = input.split(/[, ]+/);

但在你的情况下你可能不需要那么远。

答案 1 :(得分:4)

我认为最好使用这样的东西:

text.match(/[a-z'\-]+/gi);

实施例:



var e=function()
 {
  var r=document.getElementById('r');
  var x=document.getElementById('t').value.match(/[a-z'\-]+/gi);
  for(var i=0;i<x.length;i++)
   {
    var li=document.createElement('li');
    li.innerText=x[i];
    r.appendChild(li);  
   }
 }
&#13;
<div style="float:right;width:18%">
 <ol id="r" style="display:block;width:auto;border:1px inner;overflow:scroll;height:8em;max-height:10em;"></ol>
 <button onclick="e()">Extract words!</button>
</div>
<textarea id="t" style="width:70%;height:12em">even, test; spider-man

But saying o'er what I have said before:
My child is yet a stranger in the world;
She hath not seen the change of fourteen years,
Let two more summers wither in their pride,
Ere we may think her ripe to be a bride.

—Shakespeare, William. The Tragedy of Romeo and Juliet</textarea>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

Hej Harry

如果逗号是分隔符,则可以使用逗号

调用split

例如:

var newColls = myString.split(",");

并没有与空间分开。

GL

答案 3 :(得分:1)

a.split(',')

var re = /\s*,\s*/
var newA = a.split(re);

答案 4 :(得分:1)

只需使用此代码:

var a = "even, test";
var words = a.split(", ");

答案 5 :(得分:1)

我在Sublime Text默认设置中找到了一个单词分隔符列表。 使用一些Unicode支持(定义的分隔符虽然不是Unicode),这是如何拆分的方法:

{ // word_separators: ./\()"'-,;<>~!@#$%^&*|+=[]{}`~?: (32)
    function splitByWords(str = '', limit = undefined) {
        return str.split(/[-./\\()"',;<>~!@#$%^&*|+=[\]{}`~?:]/u, limit)
    }

    function reverseString(str) {
        let newString = ''
        for (let i = str.length - 1; i >= 0; i--)
            newString += str[i]
        return newString
    }

    const str = '123.x/x\\x(x)x"x\'x-x:x,789;x<x>x~x!x@x#x$x%x^x&x*x|x+x=x[x]x{x}x`x~x?456'
    console.log(splitByWords(str)) // (33) ["123", "x", "x", "x", "x", "x", "x", "x", "x", "x", "789", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "456"]
    console.log(splitByWords(str, 1)) // ["123"]
    console.log(splitByWords(reverseString(str), 1)) // ["654"]
}

由于某种原因,-必须位于开头,:必须位于结尾。 编辑:您可能想添加\ s(在-之后),以将空格算作分隔符

答案 6 :(得分:0)

我认为你可以这样做:

var a= 'even,'
var newA = a.slice(0, -1)

这将删除给定字符串中的最后一个字符。

要检查字符串是否包含逗号,我会执行以下操作:

if (a.indexOf(",") >= 0){
    //contains a comma
} else {
    //no comma
}

我是一个javascript初学者,所以这可能不是最好的方法,但它仍然有效。