这可能是一个简单的问题但是,我如何分割单词...例如
a = "even, test"
我使用.split
用空格分隔文本。
所以结果就像是
a = "even,"
b = "test"
但是,如何删除“逗号”?
但在某些情况下,它可能会“甚至测试”,在某些情况下,我可能会“平衡,测试”。一切都是动态的,那么如何检查它们呢?
由于
答案 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;
答案 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初学者,所以这可能不是最好的方法,但它仍然有效。