请查看以下代码,它使用正则表达式作为一部分来转义输入字符串中的单引号。它验证用户输入的字符串是否以逗号分隔,并且同时转义输入字符串中的任何单引号。
为了转义单引号,只需在字符串中输入反斜杠后跟一个单引号,例如:
\'。我在此示例中使用了jQuery验证器,您可以根据自己的方便使用。
有效的字符串示例:
'Hello'
'Hello', 'World'
'Hello','World'
'Hello','World',' '
'It\'s my world', 'Can\'t enjoy this without me.', 'Welcome, Guest'
HTML:
<tr>
<td>
<label class="control-label">
String Field:
</label>
<div class="inner-addon right-addon">
<input type="text" id="stringField"
name="stringField"
class="form-control"
autocomplete="off"
data-rule-required="true"
data-msg-required="Cannot be blank."
data-rule-commaSeparatedText="true"
data-msg-commaSeparatedText="Invalid comma separated value(s).">
</div>
</td>
JavaScript:
/**
*
* @param {type} param1
* @param {type} param2
* @param {type} param3
*/
jQuery.validator.addMethod('commaSeparatedText', function(value, element) {
if (value.length === 0) {
return true;
}
var expression = new RegExp("^((')([^\'\\\\]*(?:\\\\.[^\'\\\\])*)[\\w\\s,\\.\\-_\\[\\]\\)\\(]+([^\'\\\\]*(?:\\\\.[^\'\\\\])*)('))(((,)|(,\\s))(')([^\'\\\\]*(?:\\\\.[^\'\\\\])*)[\\w\\s,\\.\\-_\\[\\]\\)\\(]+([^\'\\\\]*(?:\\\\.[^\'\\\\])*)('))*$");
return expression.test(value);
}, 'Invalid comma separated string values.');
onclick
事件的绑定方式改为不显眼的,并将所有数据库信息移入数据岛中是一个好主意。这样可以使代码更加清晰,当字符串转义出错时,还能获得某种语法错误提示。 - Justin Johnson