我想验证由一些分隔符分隔的单词输入。本例中的分隔符是“|”符号,前后用空格分隔
Hello | There | Yes -----> Match
Hello -----> Match
hello|There -----> No Match
到目前为止,我只听到了第一个单词,下面是rejex:
^[a-zA-Z]+
如何用空格和分隔符分隔单词或数字?PS仍在学习教程。任何帮助都将不胜感激
为了进一步澄清,我正在为上面的dojo dijit小部件寻找正则表达式,以正确验证输入。
dojo.declare("some.class", dijit.form.ValidationTextBox, {
regExp: ""
});
dojo.addOnLoad(function() {
var formString = new some.class({
}, "StringName");
}
<form id="myForm" name="myForm">
String: <input id="StringName" name="name" type="text">
</form>
如果该行是上述格式,似乎您正在尝试匹配整行。
^[A-Za-z\d]+(?:\s\|\s[A-Za-z\d]+)+$
或
如果你想匹配一个单词,也可以使用这个。
^[A-Za-z\d]+(?:\s\|\s[A-Za-z\d]+)*$
演示
var s = "Hello | There | Yes";
var s1 = "hello|There";
var s2 = "456 | 654 | 645 | 465";
alert(/^[A-Za-z\d]+(?:\s\|\s[A-Za-z\d]+)+$/.test(s))
alert(/^[A-Za-z\d]+(?:\s\|\s[A-Za-z\d]+)+$/.test(s1))
alert(/^[A-Za-z\d]+(?:\s\|\s[A-Za-z\d]+)+$/.test(s2))
如果要使用正则表达式,可以使用如下简单的正则表达式:
^\w+(?:\s\|\s\w+)*$ <--- this allows a unique word
or
^\w+(?:\s\|\s\w+)+$ <--- this allows two words at least
工作演示
Javascript代码:
var re = /^\w+(?:\s\|\s\w+)*$/gm;
var str = 'Hello | There | Yes\nhello|There\n456 | 654 | 645 | 465';
var m;
while ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
如果您知道它将始终是一个空格后跟一个管道字符后跟一个空格,那么在没有正则表达式的情况下使用拆分()
可能更容易。
var myArray = myString.split(' | ');
如果您绝对必须使用正则表达式,因为(例如)您不知道会有什么样的空格字符或有多少空格字符,您仍然可以使用分割()
,但只需将正则表达式传递给它:
var myRegExp = /\s+\|\s+/;
var myArray = myString.split(myRegExp);
使用JavaScript,我试图使用正则表达式将段落拆分为句子。我的正则表达式不考虑括号内的句子,我希望保留分隔符。 我在这里放了一个代码示例 jsFiddle.net
我有一个数据帧,其中一列是一系列字符串,其中截然不同的短语要么是单个单词,要么是用空格分隔的多个单词;每个单词的第一个字母都是大写字母(例如“草莓”或“草莓果酱”)。相反,如果这些词不是同一短语的一部分,则不会间隔开(例如“jamapple”)。 我如何使用regex在一个字符串中根据上面的规则将短语分开(分为“草莓果酱”、“苹果”、“香蕉”、“梨碎”、“土豆”、“杏仁蛋糕”)。然后提取他们?即获
以下模式需要一个组合正则表达式: 其中带数字的分隔符可以是空格()、减号(-)、句点(.),反斜杠(\),等于(=)。一种情况是,一个以上的分隔符(相同或不同类型)不能与任意两位数字同时出现一次以上。 有效号码- 一个有效的输入是,只要没有两个相邻的分隔符,就有16位数字被任意/无分隔符分隔。 我们想出了以下正则表达式: 它与某些模式不匹配。例如: 对于相同的数字,它匹配(如预期的)以下模式: 分
考虑字符串。如何以非贪婪的方式(在awk中)匹配和之间的内容? 我尝试了以下方法: 没有输出。我相信不匹配的原因是“”和之间的字符数为奇数。如果我用替换 ,正则表达式似乎可以工作。
我在Javascript中有以下正则表达式: 这将检查字符串是否至少有两个大于1个字符的单词。 前- 我现在有了一个新的要求,我试图实现它,但不能正确执行。 新要求:能够有一个逗号分隔的相同类型的输入列表。不能以逗号结尾。根据上述规则,每个项目必须有效 如果没有逗号,则其也是有效的 所有字符都是字母,没有数字/特殊字符
我有一个字符串: 我想用分隔符< code >分割这个字符串 为此,我使用以下方法: 我得到了我需要的东西,除了我失去了分隔符。下面是示例:http://jsfiddle.net/JwrZ6/1/ 如何保留分隔符?